用这个简单的代码可以说明这个问题
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");
}
}
}