2011-02-05 29 views

回答

3

如果我理解的問題,你想是這樣的:

function myFunction():void { trace("calling my function!"); } 
var functions:Array = [myFunction]; 

functions[0](); // traces "calling my function!" 

的想法是,每個函數也是一個對象。當你有myFunction()時,如果你把「myFunction」當作一個變量(注意:no()),那麼你可以傳遞一個對該函數的引用。例如,這就是回調工作的方式。

例如:

this.addEventListener(MouseEvent.CLICK, clickHandler); 
function clickHandler(e:MouseEvent):void { 
trace("CLICK!"); 
} 

在你的addEventListener電話,你傳遞給你的clickHandler事件函數的引用。然後Flash知道每當這個對象接收到一個MouseEvent.CLICK類型的事件時,它應該調用被引用的函數(在本例中爲clickHandler)。

這有道理嗎?

+1

值得注意的是,函數引用實際上可以存儲在類型爲`Function`的變量中,如`var callback:Function = someFunction;`如果除了函數之外還想存儲參數/參數,則可以將它們放入一個`var parameters:Array`。然後你可以使用函數對象的apply()方法調用該函數:`callback.apply(null,parameters)`。 – epologee 2011-02-06 14:21:35

相關問題