本文主要是介绍令人疑惑的this,到底指向哪里?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
this指向
● 方法中,this指向该方法所属对象
● 函数中,this指向全局对象(window或gobal)
● 单独时,this指向全局对象(window或gobal)
● 事件中,this指向接受事件的函数
● 也可以自定义this指向(call,apply,bind)
● 箭头函数中:
○ this的指向是在定义函数时绑定的,而非执行函数时
○ 定义时绑定:自内向外继承this,在父级上下文中寻找this
var x = 11;
var obj = {x:22say:()=>{console.log(this.x);}
}
箭头函数与say为键值对形式,和x:22平级,其父级为obj对象,obj对象上下文为window,故this.x实际上为window.x,所以,控制台输出11
○ 箭头函数中this的指向固定化,call,apply,bind都不能改变其指向,因为箭头函数没有自己的this
○ 箭头函数没有自己的this,故不能作为构造函数
● 构造函数中,指向被构造的对象
这篇关于令人疑惑的this,到底指向哪里?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!