所以能用函数作为参数,是因为函数是一种复杂数据类型的数据,任意数据类型的变量都可以作为函数的参数。
用函数作为参数的实例:
//调用函数
referFunc(traceMsg);
//定义函数
function traceMsg():void {
trace("this is function");
}
//函数的引用作为参数
function referFunc(f:Function):void {
f();
}
在函数referFunc()中定义了一个数据类型为Function,即函数类型的参数,然后通过函数名f和()调用函数,这就是用函数名作为参数。
用函数作为参数并传递函数的参数实例:
//调用函数
referFunc(traceMsg,"this is function");
//定义函数
function traceMsg(msg:*):void
{
trace(msg);
}
//函数的引用作为参数并传递引用函数的参数
function referFunc(f:Function,msg:*):void
{
f(msg);
}
用函数作为参数,实际上是在函数内调用了函数f(msg),参数f 是对函数traceMsg的引用。
函数名即引用,引用可以有多个,所以可通过变量来引用函数