箭頭函數的做用域

箭頭函數的做用域
箭頭函數做用域是和父級的上下文綁定在一塊兒的
測試用例:瀏覽器

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

相關文章
相關標籤/搜索