JavaScript 绑定(bind)语法

标签 javascript node.js underscore.js syntactic-sugar

我正在阅读我前同事编写的一些 Node 代码。我不是一个熟练的 JavaScript 程序员,但我看到很多代码在我看来就像语法糖。例如:

_.bind(this._work, this),

这与调用不完全相同

this._work

最佳答案

这将创建函数的副本,并将 this 绑定(bind)到正确的对象。当您传递函数时这会很有用。

function log(msg) {
  document.querySelector('pre').innerText += msg + '\n';
}

var _ = {
  bind: function(f, self) {
    // Simplified bind implementation
    return f.bind(self);
  }
};

function runFunc(f) {
  f();
}

var obj = {
  myName: 'Mike',
  printName: function() {
    log(this.myName);
  }
};

obj.printName(); // "Mike"
runFunc(obj.printName); // undefined
runFunc(_.bind(obj.printName, obj)); // "Mike"
<pre></pre>

关于JavaScript 绑定(bind)语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36166450/

相关文章:

javascript - 尝试编写一个 do-while 循环语句来打印我的语句,但当前没有打印它

javascript - 为什么函数变量计算结果返回错误?

node.js - 套接字断开连接上的 Socket.io

javascript - 如何使用下划线数据(以前的 underscore.query)

javascript - 来自对象内部的 window.setInterval

javascript - 如何使用 JQuery 替换 <ul> 的所有 <li> 元素?

带有 Jest 的组件中的javascript模拟导入

node.js - 如何更改快速静态目录?

javascript - 在嵌套 json 对象中插入数据

javascript - 如何通过下划线更改集合结构?