原型函数bar
在其他地方执行,在 Node.js 环境中(bind
应该可用)。我希望this
内部bar()
函数成为我的对象的实例:
var Foo = function (arg) {
this.arg = arg;
Foo.prototype.bar.bind(this);
};
Foo.prototype.bar = function () {
console.log(this); // Not my object!
console.log(this.arg); // ... thus this is undefined
}
var foo = new Foo();
module.execute('action', foo.bar); // foo.bar is the callback
...为什么bar()
记录undefined
而this
不是我的实例?为什么调用没有改变执行上下文bind
?