gpt4 book ai didi

apache-flex - Actionscript 通过引用传递

转载 作者:行者123 更新时间:2023-12-01 01:32:50 24 4
gpt4 key购买 nike

package {
import flash.display.Sprite;

public class test1 extends Sprite {

private var tmp:Object;

public function test1() {
createObj(tmp);
if(tmp == null) {
trace("nothing changed");
}
}

private function createObj(obj:Object):void {
obj = new Object();
}

}
}

在上面的代码中,控制台上的输出是:
没有任何变化

为什么?

如果 createObj 的参数是通过引用传递的(这是
actionscript 的默认行为),为什么它没有被修改?

最佳答案

你没有传递引用。你路过 null分配给局部变量 obj在函数内使用。

Passing arguments by value or by reference :

To be passed by reference means that only a reference to the argument is passed instead of the actual value. No copy of the actual argument is made. Instead, a reference to the variable passed as an argument is created and assigned to a local variable for use within the function.



createObj您正在创建一个必须返回的新引用:
public function test1() {
tmp = createObj();
if(tmp != null) {
trace("Hello World!");
}
}

private function createObj():Object {
return new Object();
}

关于apache-flex - Actionscript 通过引用传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3708371/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com