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
}
}
我不是传递一个值,而是传递一个绑定在调用作用域中的函数,该函数在被调用方的作用域中求值