renjun0324 2013-08-15 11:03 采纳率: 0%
浏览 849

actionscript 3.0 小问题

请高手回答:下面的代码输出为
aFunc()
bFunc()
cFunc()
dFunc()
aFuncExected:true
cFuncExected:true
dFuncExected:true
bFuncExected:true

为什么不是下面的呢?
aFunc()
bFunc()
cFunc()
dFunc()
aFuncExected:true
bFuncExected:true
cFuncExected:true
bFuncExected:true

                    var funcAry:Array=new Array();
        //将需要的操作步骤加入队列
        funcAry.push(aFunc);
        funcAry.push(bFunc);
        funcAry.push(cFunc);
        funcAry.push(dFunc);

        //供操作的对象
        var originObject:Object=new Object();

//需要执行几步由execQueue这个参数决定,在实际运用中可能动态决定
        var execQueue:Number=funcAry.length;

//核心步骤:函数队列执行。实际运用中可以把它包装成一个函数,或者一个类的实例
for(var i:Number =0;i<funcAry.length;i++){
funcAryi;
}

        //trace出执行操作后的original里面的内容
        for(var j in originObject){
            trace(j+":"+originObject[j]);
        }

        //操作步骤abc
        function aFunc(eO:Object){
            eO.aFuncExected=true;
            trace("aFunc()");
        }
        function bFunc(eO:Object){
            eO.bFuncExected=true;
            trace("bFunc()");
        }
        function cFunc(eO:Object){
            eO.cFuncExected=true;
            trace("cFunc()");
        }
        function dFunc(eO:Object){
            eO.dFuncExected=true;
            trace("dFunc()");
        }
  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-01-13 09:41
    关注

    这段代码中,在执行 for 循环时,应该把数组中存储的函数执行,而不是打印出函数名,所以应该把funcAryi改成funcAryi,这样才能执行数组中存储的函数并传入 originObject 作为参数。


    修改后的代码如下:

    for(var i:Number =0;i<funcAry.length;i++){
        funcAry[i](originObject);
    }
    

    这样才能达到预期结果,即先输出 aFunc()、bFunc()、cFunc()、dFunc(),然后输出 aFuncExected:true、bFuncExected:true、cFuncExected:true、dFuncExected:true

    评论

报告相同问题?

悬赏问题

  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样