我正在阅读我的前同事写的一些节点代码。我不是一个熟练的JavaScript程序员,但我看到很多代码在我看来像语法糖。例如:
_.bind(this._work, this),
与调用
不完全相同this._work
答案 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;