如何绑定内联匿名函数?

2024-01-20

我在尝试着bind (ie bind(this)) 内联匿名回调函数object
如何做呢?

简化示例:

var object = {

  property: function() {

    this.id = 'abc'; // 'this' binds to the object

    aFunctionWithCallback(this.id, function(data) {
      console.log(this); // null
    });
  }
};

与您一贯使用的方式相同bind.

获取对函数的引用(例如函数表达式返回的引用),并调用bind方法就可以了。

aFunctionWithCallback(this.id, function(data) {
  console.log(this);
}.bind(this));

自从写完这个答案以来,JS 添加了一个新功能:箭头函数 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions.

他们绑定this词法上而不是根据函数的调用方式确定其值,因此您可以简单地将一个值放入此代码中:

aFunctionWithCallback(this.id, (data) => {
  console.log(this);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何绑定内联匿名函数? 的相关文章

随机推荐