javascript - 将回调存储在对象中

标签 javascript

我们可以将回调函数存储在对象中,然后通过从对象中检索来调用回调吗?

var myArray = [];

function myFoo(myCallback)
{
    var obj = new Object();
    obj.call_back = myCallback; // Store in object 

    myArray.push(obj); // Add in array
}

function doSomething(results)
{
    for(var index=0;index < myArray.length;index++)
    {
        var obj = myArray[index];
        if( obj.hasOwnProperty("call_back") )
        {
            var callbackMethod = obj.call_back;
            callbackMethod(results); // Call callback
        }
    }
} 

实现有效吗?

最佳答案

是的,它是有效的。但是您想在这些对象中存储更多信息还是仅在回调中存储更多信息?如果只有回调,您可以将它们按原样存储在数组中

var myCallbacks = [];

function myFoo(myCallback) {
  myCallbacks.push(myCallback);
}

function doSomething(results) {
  var index;

  for(index = 0; index < myCallbakcs.length; index++) {
    myCallbacks[index]();
  }
}

关于javascript - 将回调存储在对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39527628/

相关文章:

javascript - JavaFX Webview 不支持 window.FileReader javascript 的解决方法

javascript - fadeIn() 和 fadeOut() 的 Bootstrap 转换

javascript - 如何向 enter.append 中使用的 d3 数据集添加新元素?

javascript - 当弹出窗口处于事件状态时,如何与 ionic 中的后台元素进行交互?

javascript - 返回数字和单词正则表达式 javascript

javascript - 如何在 Angular 中过滤数组?

javascript - 如何测试 Tabris 中是否存在文件?

javascript - 如何将 Sinon.JS spy 函数指定为类定义的一部分?

JavaScript:使用子类的父方法?

javascript - 如何匹配非捕获组