所以我一直试图让这个回调在一个对象内部工作,我只是想知道是否:
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()时放入()。
感谢并抱歉早些时候没有发布更全面的例子。
肯
答案 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)
很抱歉迟到的回复(我正在度假),这是一个语法错误,我忘记了对象方法中的逗号分隔符。