1. 程式人生 > >es6 箭頭函式的this 指向問題

es6 箭頭函式的this 指向問題

箭頭函式體內的this,就是定義時,函式所在的物件,而不是呼叫時所在的物件。

var foo = () => {
  console.log(this.id);
}

var id = 1;

foo(); // 輸出1 // this 的指向一直是指向 window

foo.call({ id: 2 }); // 輸出1  // this 的指向一直是指向 window

普通函式體內的this,指向呼叫時所在的物件。

function foo() 
{
    console.log(this.id);
}

var id = 1;

foo(); // 輸出1 this指向 window

foo.call({ id: 2 }); // 輸出2  這裡是{ id: 2 }呼叫 foo,所以 this的指向是 { id: 2 }這個物件,因此 console.log(this.id); 的輸出值是 2