ES6 中的箭頭函數與方法宣告
在深入研究ES6 時,你可能會遇到以下問題:
var person = { name: "jason", shout: () => console.log("my name is ", this.name) }; person.shout(); // Prints "my name is "
目的是讓函數存取person 物件中的name 屬性。然而,控制台只印出「我的名字是。」
解釋:
這種行為源自於 ES6 中箭頭函數的獨特性質。與傳統函數宣告不同,箭頭函數不綁定 this 關鍵字。相反,它們從周圍的範圍繼承 this 綁定,在本例中是全域範圍。
解決方案:
要解決此問題,您可以使用 ES6 方法聲明模式,它保留了所需的綁定:
var person = { name: "jason", shout() { console.log("my name is ", this.name); } }; person.shout(); // Prints "my name is jason"
以上是ES6 中的箭頭函數與方法宣告:為什麼「this」在箭頭函數中不能如預期運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!