一、实现函数代理。
设立一个代理函数对象,根据条件的不同,将它指向不同的函数,可实现动态改变(即运行时改变)。
var kingdaFunc:Function;
var sex:String = "male";
if (sex == “male”) {
kingdaFunc = maleFunc;
}else {
kingdaFunc = famaleFunc;
}
kingdaFunc();
function maleFunc() {
trace ("I am a boy");
}
function femaleFunc() {
trace ("I am a girl");
}
二、建立函数执行队列
var funcAry:Array = new Array();
//将需要的操作步骤加入队列
funcAry.push(aFunc);
funcAry.push(bFunc);
funcAry.push(cFunc);
//供操作的对象
var originObject:Object = new Object();
//需要执行几步由execQueue这个参数决定,在实际工程运用中这个数可能是动态决定的
var execQueue:Number = funcAry.length;
//核心步骤:函数队列执行。实际运用中可以把它包装成一个函数,或者一个类的实例
for (var i:Number =0; i<funcAry.length; i++) {
funcAry (originObject);
}
//trace出执行操作后的originObject里面的内容
for (var j in originObject) {
trace (j + “:” + originObject[j]);
}
//操作步骤a,b,c
function aFunc(eO:Object) {
e0.aFuncExected = true;
trace ("aFunc()");
}
function bFunc(eO:Object) {
eO.aFuncExected = true;
trace ("bFunc()");
}
function bFunc(eO:Object) {
eO.aFuncExected = true;
trace ("cFunc()");
}
设立一个代理函数对象,根据条件的不同,将它指向不同的函数,可实现动态改变(即运行时改变)。
var kingdaFunc:Function;
var sex:String = "male";
if (sex == “male”) {
kingdaFunc = maleFunc;
}else {
kingdaFunc = famaleFunc;
}
kingdaFunc();
function maleFunc() {
trace ("I am a boy");
}
function femaleFunc() {
trace ("I am a girl");
}
二、建立函数执行队列
var funcAry:Array = new Array();
//将需要的操作步骤加入队列
funcAry.push(aFunc);
funcAry.push(bFunc);
funcAry.push(cFunc);
//供操作的对象
var originObject:Object = new Object();
//需要执行几步由execQueue这个参数决定,在实际工程运用中这个数可能是动态决定的
var execQueue:Number = funcAry.length;
//核心步骤:函数队列执行。实际运用中可以把它包装成一个函数,或者一个类的实例
for (var i:Number =0; i<funcAry.length; i++) {
funcAry (originObject);
}
//trace出执行操作后的originObject里面的内容
for (var j in originObject) {
trace (j + “:” + originObject[j]);
}
//操作步骤a,b,c
function aFunc(eO:Object) {
e0.aFuncExected = true;
trace ("aFunc()");
}
function bFunc(eO:Object) {
eO.aFuncExected = true;
trace ("bFunc()");
}
function bFunc(eO:Object) {
eO.aFuncExected = true;
trace ("cFunc()");
}