在对象上调用匿名函数
Call anonymous function on object
通常我会这样执行回调: 调用回调的对象 具有以下方法:
this.set_success_callback = function(obj, func){
this.success_callback_obj = obj;
this.success_callback_func = func;
}
this.make_success_callback = function(msg){
this.success_callback_obj[this.success_callback_func](msg);
}
然后在我设置 Object 时,我会这样调用回调:
var obj = new ...
obj.set_success_callback(this, "sayHello");
这按预期工作。 但是当我想这样定义回调时:
obj.set_success_callback(this, this.sayHello);
并将make_success_callback
函数更改为:
this.success_callback_ob.call(this.success_callback_func, msg)
我得到这个错误:
Object [object Object] has no method 'call'
我需要更改什么才能使其正常工作?我如何在此调用函数 sayHello?谢谢
您只是混淆了对象和函数。应该是:
this.success_callback_func.call(this.success_callback_ob, msg)
A Function
有一个 .call()
method,它将上下文对象作为第一个参数。 Object
没有 .call()
方法。
通常我会这样执行回调: 调用回调的对象 具有以下方法:
this.set_success_callback = function(obj, func){
this.success_callback_obj = obj;
this.success_callback_func = func;
}
this.make_success_callback = function(msg){
this.success_callback_obj[this.success_callback_func](msg);
}
然后在我设置 Object 时,我会这样调用回调:
var obj = new ...
obj.set_success_callback(this, "sayHello");
这按预期工作。 但是当我想这样定义回调时:
obj.set_success_callback(this, this.sayHello);
并将make_success_callback
函数更改为:
this.success_callback_ob.call(this.success_callback_func, msg)
我得到这个错误:
Object [object Object] has no method 'call'
我需要更改什么才能使其正常工作?我如何在此调用函数 sayHello?谢谢
您只是混淆了对象和函数。应该是:
this.success_callback_func.call(this.success_callback_ob, msg)
A Function
有一个 .call()
method,它将上下文对象作为第一个参数。 Object
没有 .call()
方法。