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

Passing an object method by reference to another function in Javascript

本文关键字:对象 方法 函数 另一个 引用 Javascript      更新时间:2023-09-26

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

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

因此,与其只是有一个定期声明的函数:

function callback() {}

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

doSomething(回调)

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

   {
     prop: function() {}
   } 

并将其作为回电发送。

问题是,通过道具的引用会抛出一个错误:

doSomething(prop): 

投掷:Uncaught SyntaxError: Unexpected token :

如果需要一个完整的例子,请告诉我。

谢谢,Ken

**编辑**

好吧,经过一些混乱之后,我输入了一个相当完整的例子。

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

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

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

Ken

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

只需传递方法:

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

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

obj.func作为参数时,它会从作用域中传递丢失this的函数。

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

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