-
每一个函数内部都有一个关键字是
this
-
可以让我们直接使用的
-
重点: 函数内部的 this 只和函数的调用方式有关系,和函数的定义方式没有关系
-
函数内部的 this 指向谁,取决于函数的调用方式
1、 全局定义的函数直接调用,this => window
function fn() {
console.log(this)
}
fn()
// 此时 this 指向 window
2、对象内部的方法调用,this => 调用者
var obj = {
fn: function () {
console.log(this)
}
}
obj.fn()
// 此时 this 指向 obj
3、定时器的处理函数,this => window
setTimeout(function () {
console.log(this)
}, 0)
// 此时定时器处理函数里面的 this 指向 window
4、事件处理函数,this => 事件源
div.onclick = function () {
console.log(this)
}
// 当你点击 div 的时候,this 指向 div
自调用函数,this => window
(function () {
console.log(this)
})()
// 此时 this 指向 window