箭头函数的做用域
箭头函数做用域是和父级的上下文绑定在一块儿的
测试用例:浏览器
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
this