我们可以将回调函数存储在对象中,然后通过从对象中检索来调用回调吗?
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/