函数
函数声明
js
function fn() {}
函数表达式
js
var fn = function() {}
什么是回调函数
已经定义
没有调用
但最终它执行了(在某个时刻和某个条件下)
有哪些回调函数
- dom事件回调函数 ==> 发生事件的dom元素
- 定时器回调函数 ==> window
- ajax亲求回调函数
- 生命周期回调函数
IIFE(立即执行函数表达式)
作用
- 隐藏内部实现
- 不会污染全局命名空间
- 编写js模块
js
;(function() {
var a = 3
console.log(a + 3)
})()
js
;(function() {
var a = 1
function test() {
console.log(++a)
}
window.$ = function() {
return {
test: test
}
}
})()
$().test()
函数中的this
this 是什么
任何函数本质上都是通过某个对象调用的
所有函数内部都有一个变量 this
它的值是调用函数的当前对象
如何确顶 this 的值
- test(): window
- p.test(): p
- new test(): 新创建的对象
- p.call(obj): obj
js
function Person() {
console.log(this)
this.color = function() {
console.log(this)
}
this.setColor = function() {
console.log(this)
}
}
Person() // this 指向 window
var p = new Person() // this 指向 p
p.color() // this 指向 p
var obj = {}
p.setColor.call(obj) // this 指向 obj
var test = p.setColor;
test() // this 指向 window
function fun1() {
function fun2() {
console.log(this)
}
fun2() // this 指向 window
}
fun1()