我正在阅读我前同事编写的一些 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/