所以,我希望在某些情況下收集某些條件滿足時要調用的函數。例如。在actionscript中收集和識別數組中的函數
function doSomething(someArg:Object):void {
if (conditionIsFalse){
operationsToDoWhenConditionIsTrue.push(function(){
doSomething(someArg);
});
}
}
function onConditionBecomingTrue():void {
while (operationsToDoWhenConditionIsTrue.length > 0){
operationsToDoWhenConditionIsTrue.shift()();
}
}
到目前爲止好。然而,在某些時候,我想迭代operationsToDoWhenConditionIsTrue並識別並替換一個函數。在DoSomething的方法中的僞代碼將是:
function doSomething(someArg:Object):void {
if (conditionIsFalse){
for (var i:int = 0; i<operationsToDoWhenConditionIsTrue; i++){
// pseudo code here
if (typeof operationsToDoWhenConditionIsTrue[i] == doSomething){
operationsToDoWhenConditionIsTrue[i] = doSomething(someArg);
}
}
}
}
基本上如果DoSomething的叫了兩次,我只想operationsToDoWhenConditionIsTrue保持最近的調用。顯然,由於調用被封裝在函數(){}中,所有函數都是相同的。有什麼方法可以完成我想要的嗎?
標識相同操作的標準是什麼?操作是否用不同的'doSomething'功能標識(即每個之間有1-1映射)? – outis 2011-12-29 00:25:31
是的,我現在意識到,如果你只是刪除typeof,那麼我的僞代碼就有點類似了。 – pondermatic 2011-12-29 18:56:54