2012-08-27 28 views
1

所以我一直试图让这个回调对象的内部工作,我只是想知道如果:传递引用一个对象的方法给另一个函数在Javascript

1)这是可能的, 2)特殊的语法是必须的。

因此,而不是仅仅有一个经常宣称的功能:

function callback() {} 

又路过那个给另一个函数的引用:

DoSomething的(回调)

我试着传递一个对象的属性,包含功能:

{ 
    prop: function() {} 
    } 

and se nd作为回电。

的问题是,通过道具的参考抛出一个错误:

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()。

感谢和抱歉没有发布一个更全面的例子。

+0

“这是抛出意外的令牌错误”:不,[它不](http://jsfiddle.net/xbgSQ/)。请记住,当调用obj.callback_function时,'this'关键字不会*引用'obj'。 – MaxArt

回答

1

只是传递方法:

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

对不起,我会发布一个完整的例子 - 但这是我目前正在做的。引发意外的令牌错误,除非您使用参数包含()。 – Ken

+0

@Ken我还在等你的例子。我不确定我有问题,但恐怕你的实际问题是Javascript语法。 – MaxArt

+0

抱歉这么长时间,我正在家庭度假,并在发布后立即穿梭于门外。 – Ken

0

你打错在doSomething(prop):

+0

对不起 - 我从我的手机上输入。现在打个完整的例子。 – Ken

0

末分号当你做obj.func作为一个参数,它传递的功能失去this范围。

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

对不起,我迟到响应(我是在度假),这是一个语法错误,我忘了在我的对象方法中的逗号分隔符。

1

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

+0

感谢您的回复:)虽然我很久以前就已经解决了,但很高兴知道社区是一个非常有用的社区。 – Ken

相关问题