返回课程

第二次绑定

重要性: 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(...)返回的奇特的绑定函数对象只在创建时记住上下文(以及提供的参数)。

函数不能被重新绑定。