二次 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(...)
返回的外来(exotic)绑定函数 对象仅在创建的时候记忆上下文(以及参数,如果提供了的话)。
一个函数不能被重绑定(re-bound)。