当将一个方法存储到变量中时,该方法的执行上下文(execution context)将发生变化。在此情况下,该方法的 'this' 指向全局对象。因此,当手动调用该方法时,'this' 的值将不同于原始情况下的值。

为了解决这个问题,可以使用 'bind()' 方法来绑定方法的执行上下文。例如:

const myMethod = function() {
  console.log(this); // 输出当前执行上下文的 this 值
};

const myObj = {
  myProp: 'hello'
};

const boundMethod = myMethod.bind(myObj);

boundMethod(); // 输出 myObj 对象

在此示例中,我们定义了一个方法 'myMethod',然后将其绑定到 'myObj' 对象上。我们使用 'bind()' 方法来创建一个新的方法 'boundMethod',该方法具有与 'myMethod' 相同的函数体,但其执行上下文被绑定到 'myObj' 对象。因此,当调用 'boundMethod()' 方法时,它的 'this' 值将指向 'myObj' 对象,而不是全局对象。


原文地址: https://www.cveoy.top/t/topic/ogVP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录