this指向
● 方法中,this指向该方法所属对象
● 函数中,this指向全局对象(window或gobal)
● 单独时,this指向全局对象(window或gobal)
● 事件中,this指向接受事件的函数
● 也可以自定义this指向(call,apply,bind)
● 箭头函数中:
○ this的指向是在定义函数时绑定的,而非执行函数时
○ 定义时绑定:自内向外继承this,在父级上下文中寻找this
var x = 11;
var obj = {
x:22
say:()=>{
console.log(this.x);
}
}
箭头函数与say为键值对形式,和x:22平级,其父级为obj对象,obj对象上下文为window,故this.x实际上为window.x,所以,控制台输出11
○ 箭头函数中this的指向固定化,call,apply,bind都不能改变其指向,因为箭头函数没有自己的this
○ 箭头函数没有自己的this,故不能作为构造函数
● 构造函数中,指向被构造的对象