1:箭头函数中this是在定义函数时候绑定的,而不是在执行的时候绑定
2:箭头函数没有自己的this,,,导致内部this就是外部代码块的this,this指向是很固定化的。
2-1:所以,箭头函数不能用来构造函数
var x = 11;
var obj = {
x: 22,
say: () => {
console.log(this.x);//11
}
}
say中箭头函数和say是兄弟,和x:22;是兄弟,所以,外部代码块指的是x=11,在此可看作window.x
箭头函数所在的大括号是个窝,与这个窝平级的就是上层代码块
复制代码
再来谈一个例子
var obj = {
birth: 1996,//1996
getAge: function () {
var b = this.birth;//这个var b。。没啥用,迷惑人用的,底下的箭头函数的this和这个this指向的一毛一样
var fn = () => new Date().getFullYear() - this.birth; //this指向obj的对象
return fn()
}
}
obj.getAge()
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END