1.什么是函数
- 实现某种功能的n条语句的封装体
- 只有函数是可以执行的,其他类型的数据不行
2.为什么要使用函数
- 提高代码复用率
- 便于阅读交流
3.如何定义函数
- 函数声明
- 表达式
// 函数声明
function fu1(){
console.log('hello')
}
// 表达式
var fu2= function(){
console.log('hello')
}
4.如何调用函数
- test() 直接调用
- obj.test() 通过对象调用
- new test() new调用
- test.call/apply(obj):临时让test成为obj的方法进行调用
5.回调函数
什么是回调函数?
- 自己定义的函数
- 自己没有调用
- 最终却执行了
常见的回调函数
- dom事件回调函数
- 定时器回调函数
- ajax请求回调函数
- 生命周期回调函数
// 定时器回调函数
setTimeout(function () {
alert('hello')
}, 2000)
6.匿名函数
匿名函数自调用
(function () {
console.log('这是一个匿名函数')
})()
作用
- 隐藏实现
- 不会影响全局命名空间
- 用它来编写js模块
(function () {
let a = 1
function test () {
console.warn(++a)
}
window.$ = function () {
// 向外暴露一个全局函数
return {
test: test
}
}
})()
// 1.$是一个函数
// 2.$执行后返回的是一个对象
$().test() // 调用test函数
7.this
解析器在调用函数每次都会向函数内部传递一个隐藏的参数
这个隐含的参数就是this,this指向的是一个对象
这个对象我们称为函数执行的上下文对象
根据函数的调用方式不同,this指向的对象也不同
- 以函数的形式调用,this永远都是window
- 以方法的形式调用,this就是调用方法的那个对象