[英]Call anonymous function on object
Normally I do callbacks like this: The Object that invokes the callback has this methods: 通常,我会像这样进行回调: 调用回调的对象具有以下方法:
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);
}
Then In When I setup the Object I assgin the callback like this: 然后在当我设置对象时 ,像这样设置回调:
var obj = new ...
obj.set_success_callback(this, "sayHello");
This works as expected. 这按预期工作。 But when I want to define the callback like this:
但是当我想这样定义回调时:
obj.set_success_callback(this, this.sayHello);
And change the make_success_callback
function to: 并将
make_success_callback
函数更改为:
this.success_callback_ob.call(this.success_callback_func, msg)
I get this error: 我收到此错误:
Object [object Object] has no method 'call'
What do I have to change to make it work? 我必须进行哪些更改才能使其正常工作? How can I invoke the function sayHello on this?
如何在此调用函数sayHello? Thanks
谢谢
You just mixed up the object with the function. 您只是将对象与函数混合在一起。 It should be:
它应该是:
this.success_callback_func.call(this.success_callback_ob, msg)
A Function
has a .call()
method , that takes a context object as the first argument. Function
具有.call()
方法 ,该方法将上下文对象作为第一个参数。 Object
has no .call()
method. Object
没有.call()
方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.