返回課程

第二次綁定

重要性:5

我們能透過額外的繫結來改變 this 嗎?

輸出結果會是什麼?

function f() {
  alert(this.name);
}

f = f.bind( {name: "John"} ).bind( {name: "Ann" } );

f();

答案:John

function f() {
  alert(this.name);
}

f = f.bind( {name: "John"} ).bind( {name: "Pete"} );

f(); // John

f.bind(...) 回傳的特殊 繫結函式 物件只會在建立時記住內容(以及提供的參數)。

函式無法重新繫結。