在函数之间传递值

时间:2009-07-02 07:02:32

标签: flex actionscript-3 actionscript flex3

Hi All有没有办法在函数中本地定义变量,然后将其传递给oher函数。我的意思是说可以将一个函数的局部值传递给其他函数。 有人请建议我的解决方案。 提前致谢

3 个答案:

答案 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中。

我以为我会指出这一点。