Javascript绑定语法

时间:2016-03-22 22:28:56

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

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

_.bind(this._work, this),

与调用

不完全相同
this._work

1 个答案:

答案 0 :(得分:2)

这将创建一个函数的副本,其中this绑定到正确的对象。当你传递函数时,这可能很有用。



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>
&#13;
&#13;
&#13;