回到课程

作为方法的边界函数

重要程度: 5

输出将会是什么?

function f() {
  alert( this ); // ?
}

let user = {
  g: f.bind(null)
};

user.g();

答案:null

function f() {
  alert( this ); // null
}

let user = {
  g: f.bind(null)
};

user.g();

边界函数的上下文是硬绑定的。没有办法继续修改。

所以即使我们执行 user.g(),源方法调用时还是 this=null