Hi All有没有办法在函数中本地定义变量,然后将其传递给oher函数。我的意思是说可以将一个函数的局部值传递给其他函数。 有人请建议我的解决方案。 提前致谢
答案 0 :(得分:7)
或者就是这么简单,或者你的意思是:
private function function1():void
{
var localVariable:String = "this is local variable of function1()";
function2(localVariable);
}
private function function2(string:String):void
{
trace(string);
}
function1();
或使用全局变量作为临时存储:
private var globalVariable:String = "";
private function function1():void
{
var localVariable:String = "this is local variable of function1()";
globalVariable = localVariable;
}
private function function2():void
{
trace(globalVariable);
}
function1();
function2();
答案 1 :(得分:2)
zdmytriv是对的。
虽然,你也可以制作默认变量,如下所示:
(修改zdmytriv的代码)
private function function1():void
{
var localVariable:String = "this is local variable of function1()";
function2(localVariable);
function2(); //You don't have to enter a default argument
}
private function function2(string:String = "something else"):void
{
trace(string);
}
这将追踪:
this is local variable of function1()
something else
有点偏离主题,但很高兴知道。
答案 2 :(得分:0)
Flex中的基元按值传递,其中复杂对象通过引用传递。您可以使用它来传递对象,而不在函数本身之外设置变量。例如:
private function function1():void {
{
var localVar:Object = {value:"test"};
trace(localVar.value);
function2(localVar);
trace(localVar.value);
}
private function function2(obj:Object):void
{
obj.value = "new value";
}
这将追踪:
test
new value
这反映了function2通过引用接收参数“obj”这一事实,作为指向原始“localVar”对象的指针。当它设置.value字段时,该更改将反映在function1中。
我以为我会指出这一点。