在对象中存储回调

时间:2016-09-16 09:08:19

标签: javascript

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

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
        }
    }
} 

实施有效吗?

1 个答案:

答案 0 :(得分:1)

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

var myCallbacks = [];

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

function doSomething(results) {
  var index;

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