Actionscript 3 将未赋值的变量作为参数传递

Actionscript 3 将未赋值的变量作为参数传递,actionscript-3,function,variables,parameters,Actionscript 3,Function,Variables,Parameters,如何使用未赋值(和/或可能未定义)变量作为函数的参数?例如: function myFun(a:int):void { a = 5; } 如果您熟悉Mathematica,则相当于: f[a_Integer]:=a=5 Attributes[f]={HoldAll}; 核心思想是,我要传递给函数的是变量名本身,而不是当前与变量名关联的值。可以传递字符串 private function my_fun(name:String):void { trace(this[name]);

如何使用未赋值(和/或可能未定义)变量作为函数的参数?例如:

function myFun(a:int):void {
    a = 5;
}
如果您熟悉Mathematica,则相当于:

f[a_Integer]:=a=5
Attributes[f]={HoldAll};

核心思想是,我要传递给函数的是变量名本身,而不是当前与变量名关联的值。

可以传递字符串

private function my_fun(name:String):void {
    trace(this[name]);
}
使用示例:

public class Main extends Sprite {

public var a:int = 5;
    ....
    public function Main():void {
            my_fun("a");
    }

根据这些人的说法:如果它是一个类,你可以得到它的名字。如果它是一个不能使用的局部变量,那么原因可能与效率有关(名称在编译阶段丢失)

另一种解决问题的方法是使用闭包来更改计算范围

public class A {
    public static function myFun(setter:Function):void {
        setter(5);
    }
}

public class B {
    function someOtherFunction() {
        var val:Number;
        A.myFun(function(v:Number):void { val = v; });
        trace(val); // 5
    }
}
我不是传递一个值,而是传递一个绑定在调用作用域中的函数,该函数在被调用方的作用域中求值