2011-02-05 26 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

相关问题