//通过A调用只有一个参数的aFunc(): chooseFuncBy("A")("A func has only one parameter."); //输出:aFunc():A func has only one parameter. //通过B调用有两个参数的bFunc(): chooseFuncBy("B")("leon_1","leon_2"); //输出:bFunc():B func has only one parameter. //字符串不符,默认函数 chooseFuncBy("wu lala")("I choose A function."); //输出:Welcome to Kingda.org! My blog var withobj:Object=new Object(); var myObj:Object={name:"黑羽",blog:"http://www.kingda.org",hobby:"Starcraft"}; /*输出: objectFunc(): name:黑羽 blog:http://www.kingda.org hobby:Starcraft */ objectFunc(myObj); function chooseFuncBy(input:*):Function { //运用一:利用参数的种类来确定返回的参数 if (!(input is String)) { return objectFunc; } //运用二:根据参数内容来返回参数 switch (input) { case "A" : return aFunc; case "B" : return bFunc; default : return kingdaFunc; } //...更多延伸运用:利用两个参数、is确定不同Class的实例来选择函数,等等 } function aFunc(nS:String):void { trace("aFunc():"+nS); } function bFunc(nS:String,nP:String):void { trace("bFunc():"+nS+"/tone more Parameter:"+nP); } function kingdaFunc(...rest):void { trace("Welcome to Kingda.org! My blog"); } function objectFunc(kingdaObj:Object):void { trace("objectFunc():"); for (var i in kingdaObj) { trace(i+":"+kingdaObj[i]); } }