试图通过一个简单的测试来围绕 Javascript 中的原型,特别是 Node.js。
function Lint() {
this.input = 'foo';
events.EventEmitter.call(this);
}
Lint.prototype.dirs = function (dirs) {
_.each(dirs, this.files);
}
Lint.prototype.files = function (dir) {
console.log(this.input); // trying to get 'foo', returns undefined
}
var lint = new Lint();
lint.dirs(['js', 'js/views']);
Lint.prototype.files
记录未定义,因为this
不是指 Lint 的实例。我在这里想念什么?
我能想到的唯一可行的解决方案是将初始值传递this
给Lint.prototype.dirs
其他函数。我很确定有更好的方法。