0
我對構造函數裏面的箭頭函數有些迷惑。箭頭函數如何在構造函數中工作?
據我所知:如果我們使用箭頭函數,關鍵字this不會反彈到實際函數。它是從父範圍繼承的。
讓我們例如:
var d = {
b: 'b',
x:() =>{
console.log(this); // this will return Window Object.
}
}
d.x();
將打印Window
對象。沒事兒。
但在構造函數
function A(){
this.b ='b';
this.x =() =>{
console.log(this);
}
}
var c = new A()
c.x();
此打印對象c
。但據我說,它應該返回窗口對象。爲什麼?
你的*詞法範圍*已經是'A'(否則,'this.x = ...'首先不會起作用)。 – haim770
這樣做會變得很有趣:b = new A(); c = new A(); b.x = c.x; –