箭头函数的做用域

箭头函数的做用域
箭头函数做用域是和父级的上下文绑定在一块儿的
测试用例:浏览器

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

相关文章
相关标签/搜索