我们可以在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
}
}
}
实施有效吗?
答案 0 :(得分:1)
是的,它是有效的。但是,您想要在这些对象中存储更多信息还是仅存在回调?如果只有回调,你可以像在数组中一样存储它们
var myCallbacks = [];
function myFoo(myCallback) {
myCallbacks.push(myCallback);
}
function doSomething(results) {
var index;
for(index = 0; index < myCallbakcs.length; index++) {
myCallbacks[index]();
}
}