this指向
2020 M12 28
this指向动作发生的主体,与定义位置和调用位置无关。 浏览器环境下,全局this指向window。 node环境下,全局this指向一个空对象。
this的判断规则
函数执行若以xxx.fn()形式调用,则.前的xxx为this指向
函数执行若以fn()形式调用,则this指向全局
自执行函数的this永远指向全局
给元素某个事件绑定方法,事件触发,该方法的this指向绑定的元素
箭头函数没有自己的this,会沿着作用域链向上查找最近一层的this
代码示例
function fn(){
console.log(this)
}
var obj={fn}
fn();//this=>global
obj.fn//this->obj
function f(){
fn()//this=>global
}
f();
var user={
say(){
fn()//this=>global
}
}
user.say()
(function(){
fn();//this=>global
})()
document.body.onclick=fn //this=>body
document.body.onclick=function(){
fn();//this=>global
}