apache-flex 访问局部变量的匿名函数[ActionScript - Flex 3.5]

enxuqcxy  于 2022-11-01  发布在  Apache
关注(0)|答案(1)|浏览(133)

我的actionscript/flex前端出现问题。

for each (var sym:String in ["A","B","C"]) {

                const handler = function (data:Object):void { Alert.show(sym); }                

                asyncCallback(handler);

   }

我希望有3个警报窗口包含A,B和C。但实际结果是3个警报窗口都显示C!

4zcjmb1e

4zcjmb1e1#

这一个有点棘手。你必须把你的处理程序创建 Package 在另一个函数里面。
尝试:

for each(var sym:String in ["A","B","C"]) {
    function createHandler(val:String):Function {
        var handler = function(data:Object):void { 
            trace(val); 
        }
        return handler;
    }
    var handler:Function = createHandler(sym);
    asyncCallback(handler);
}

相关问题