通过引用Javascript中的另一个函数传递对象方法

时间:2012-08-27 16:11:12

标签: javascript callback javascript-objects

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

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

所以不要只是定期声明函数:

function callback() {}

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

doSomething的(回调)

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

   {
     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()时放入()。

感谢并抱歉早些时候没有发布更全面的例子。

5 个答案:

答案 0 :(得分:3)

我意识到这不是OP问题的解决方案,但我谷歌“将对象方法作为回调传递”,这就出现了。我还找到了一个链接http://bitstructures.com/2007/11/javascript-method-callbacks.html,它帮助我理解了如何在js中完成它。 HTH

答案 1 :(得分:1)

只需传递方法:

var obj = {
    prop: function() {}
};
doSomething(obj.prop);

答案 2 :(得分:0)

您在doSomething(prop):

末尾错误地分号

答案 3 :(得分:0)

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

some_function: function(callback) {
    callback.call(this);
},

答案 4 :(得分:0)

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