用这个简单的代码可以说明这个问题
package lib { public class timeAlert { //函数也是一个对象,也是一种类型,变量可以是Function类型,可以把函数赋值给它 public var m_func:Function; //可以传入不定数量的参数给函数 public function timeAlert(...args) { //可以用length来获取有几个参数 if(args.length > 0) { switch(args[0]) { case "right": m_func = correctAlert; break; case "wrong": m_func = wrongAlert; break; default: m_func = defaultAlert; break; } } } public function doAlert():void { m_func(); } //赋值给m_func的函数可以是不一样的,比如这个是带参数的,correctAlert是不带参数的 public function defaultAlert(noUse:String):void { trace("This is a default alert\n"); } public function correctAlert():void { trace("This is correct\n"); } public function wrongAlert():void { trace("This is wrong\n"); } } }