2

所以我一直试图让这个回调在一个对象内部工作,我只是想知道是否:

1)有可能,2)需要特殊的语法。

因此,不仅仅是有一个定期声明的函数:

function callback() {}

并通过引用将其传递给另一个函数:

做某事(回调)

我试图传递一个包含函数的对象属性:

   {
     prop: function() {}
   } 

并将其作为回电发送。

问题是,传递 prop 的引用会引发错误:

doSomething(prop): 

抛出:Uncaught SyntaxError: Unexpected token :

如果需要完整的示例,请告诉我。

谢谢,肯

** 编辑 **

好的,经过一番混淆后,我正在输入一个相当完整的示例。

var obj = {
    init: function() {
        this.some_function(this.callback_function)
    },
    some_function: function(callback) {
      callback();
    },
    callback_function: function() {
      // Callback!
    }
}

这会引发意外的令牌错误,除非我在将 this.callback_function 作为参数传递给 some_function() 时放入 ()。

感谢并抱歉之前没有发布更完整的示例。

4

5 回答 5

3

我意识到这不是 OP 问题的解决方案,但我在谷歌上搜索“将对象方法作为回调传递”,结果出现了。我还找到了一个链接http://bitstructures.com/2007/11/javascript-method-callbacks.html帮助我了解如何在 js 中进行操作。高温高压

于 2013-08-05T14:37:19.053 回答
1

只需传递方法:

var obj = {
    prop: function() {}
};
doSomething(obj.prop);
于 2012-08-27T16:12:57.683 回答
0

您在末尾输入错误的分号doSomething(prop):

于 2012-08-27T16:28:13.370 回答
0

抱歉回复晚了(我正在度假),这是一个语法错误,我在我的对象方法中忘记了逗号分隔符。

于 2012-09-06T20:22:19.273 回答
0

当您obj.func作为参数执行时,它会传递this从范围中丢失的函数。

some_function: function(callback) {
    callback.call(this);
},
于 2012-08-28T02:53:58.907 回答