关于this指向
来源:5-6 箭头函数
hyperse
2020-06-20 00:50:41
为什么用普通函数时,setTimeout里面的this指向的是window呀?好像第二部分课程有,但是不记得是哪一课了。。
//通过保留this的方式,通过闭包的特性去拿this let _this = this //...ajax setTimeout(function(){ _this.age = 14; //console.log(this); //window console.log(_this); //xiaohong },1000);
通过闭包的特性又该怎么理解。。
1回答
好帮手慕慕子
2020-06-20
同学你好,对于你的问题解答如下:
因为setTimeout中的普通函数function(){}是一个回调函数, 我们没有将这个回调函数与任何对象绑定在一起,根据js语法的规则, 属于默认绑定在window对象上, 所以this指向的是window
闭包的特性就是在一个函数中, 可以访问到另一个函数作用域中变量。 示例:在setTimeout的回调函数中, 访问到getAge的局部变量_this
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题