谈谈关于箭头函数中this的理解
来源:5-6 箭头函数
小姜同学666
2020-03-10 10:21:57
const xiaoming = {
name:'小明',
age:null,
getAge:function(){
//...ajax
setTimeout(() => {
this.age = 14;
console.log(this);
},1000);
}
};
xiaoming.getAge();
先问个问题,类似定时器之类的异步操作都算是在window对象下调用的么?
如果是的话,在箭头函数中的没有原型函数,也就是定时器不知道是window调用的它,所以也就没有this了,箭头函数的this只会找这个定时器上下文的this;而普通函数中定时器知道自己是被window调用的,所以是window的this。这样理解对么老师
1回答
同学你好,理解的不对。参考如下理解:
1.定时器是谁调用的与定时器中使用普通函数和箭头函数无关。即定时器就是window调用的。
2.这里只需要区分使用普通函数和箭头函数的区别。
普通函数中,谁调用了函数,this指向谁。由于window调用了定时器,所以this执行window。
箭头函数中的this是在函数创建时就会绑定,例如本代码中,定时器是在getAge方法中创建的,所以它里面的this绑定的就是getAge方法中的this。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题