2つの bind
重要性: 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(...)
によって返却された バインドされた関数 オブジェクトは作成時にのみコンテキスト(と提供されていれば引数を)を覚えます。
関数を再バインドすることはできません。