加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex – Actionscript通过引用传递

发布时间:2020-12-15 01:45:50 所属栏目:百科 来源:网络整理
导读: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
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,该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();
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读