1
在 [MDN] [綁定]使用綁定功能進行二次
我們看到這種類似的代碼
this.x = 9; // this refers to global "window" object here in the browser
var module = {
x: 81,
getX: function() { return this.x; }
};
module.getX(); // 81
var retrieveX = module.getX;
retrieveX();
// returns 9 - The function gets invoked at the global scope
var boundGetX = retrieveX.bind(module);
boundGetX();
是的,我知道的綁定將改變「這個」價值,但我迷惑代碼如下
var demo=boundGetX.bind(this);// or boundGetX.bind(window);
demo();// still 81
再次使用綁定,我認爲它會改變「this」指向「窗口」,但它不是。 我不知道爲什麼。
'boundGetX'將是一個函數,它調用模塊上的retrieveX,而不管它接收到了什麼'this'值。現在,如果你再次「綁定」,那麼'window'就會被忽略。 – Bergi
必須有一個副本,對吧?任何人? – Bergi