箭头函数的作用域

箭头函数的作用域
箭头函数作用域是和父级的上下文绑定在一起的
测试用例:

var obj = {
id: 1,
show: () => {
console.log(this.id)
}
}
obj.show()

输出: undefined
在此例中show函数为箭头函数,因此this绑定父级中的this,父级是一个顶级对象,在浏览器中this指向window对象,window中并没有属性id,所以输出undefined

测试用例2:

var obj = {
id: 1,
show: function() {
return () => {
console.log(this.id)
}
}
}
obj.show()()

输出:1
此例中,箭头函数为一匿名函数,其父级作用域为show函数,因此箭头函数绑定show函数的作用域,show函数中this指向调用show函数的对象,即obj,obj中有id属性,且值为1,所以输出1

原文地址:https://www.cnblogs.com/boundless-sky/p/11767083.html