【发布时间】:2013-03-22 16:50:26
【问题描述】:
我正在尝试确保我在下面的 caller.receiver 方法中有一个有效的 this 引用。
这是一个简化的示例,但我有一些功能分配,例如:
service.fn = this.receiver
但是,当接收器函数执行时,我希望 this 引用调用者,即我希望将字符串 'Caller - Received' 输出到控制台日志。
var service = {
name: 'Service',
fn: null,
runFn: function () {
this.fn(arguments);
}
};
var caller = {
name: 'Caller',
receiver: function () {
console.log(this.name + ' - Received');
},
perform: function () {
service.fn = this.receiver;
service.runFn();
}
};
caller.perform();
感谢任何帮助。
【问题讨论】:
-
在你的函数中使用
.apply()设置this的值。 -
如果你在那里查看你的代码,你将 service.fn 设置为指向 function() { console.log(this.name + ' - Received');在 service 和 this 函数的上下文中,'this' 是对 service 的引用。
标签: javascript function this