Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex ActionScript 3:推送元素时数组的意外行为_Apache Flex_Actionscript 3 - Fatal编程技术网

Apache flex ActionScript 3:推送元素时数组的意外行为

Apache flex ActionScript 3:推送元素时数组的意外行为,apache-flex,actionscript-3,Apache Flex,Actionscript 3,有一句话让我有点困惑: var nodes:Array = new Array(); for (var i:int = 0; i<=3; i++) { var node:Node = new Node(i) nodes.push(node); } trace(nodes[0].id + ":" + nodes[1].id); 这是怎么解释的?简单,但是当你在中间时很难发现:你的节点类中的构造函数需要这样来代替: public function Node(id:int) {

有一句话让我有点困惑:

var nodes:Array = new Array();
for (var i:int = 0; i<=3; i++)
{
   var node:Node = new Node(i)
   nodes.push(node);
}
trace(nodes[0].id + ":" + nodes[1].id);

这是怎么解释的?

简单,但是当你在中间时很难发现:你的节点类中的构造函数需要这样来代替:

public function Node(id:int)
{
    this.id = id
}

当你省略了这个“临时变量ID”时,输出中的“0”,

简单,但是当你在中间时非常难发现:你的节点类中的构造函数需要看起来像这样:
public function Node(id:int)
{
    this.id = id
}
当您省略“this”时,临时变量id会被分配给它自己,因此输出中会出现“0”。

您正在将名为
id
的参数设置为等于它自己,这显然不是预期的行为

当存在与参数同名的实例变量时,需要明确说明要设置的变量:

public function Node(id:int) {
   this.id = id;
}
这也会起作用:

public function Node(an_id:int) {
   id = an_id; //here it implicitly assigns the instance variable
}
您正在将名为
id
的参数设置为等于自身,这显然不是预期的行为

当存在与参数同名的实例变量时,需要明确说明要设置的变量:

public function Node(id:int) {
   this.id = id;
}
这也会起作用:

public function Node(an_id:int) {
   id = an_id; //here it implicitly assigns the instance variable
}
我的第一个猜测是:

this.id = id instead of id = id
您需要隐式调用对象变量

我的第一个猜测:

this.id = id instead of id = id

您需要隐式调用对象变量

所有给出的答案都是绝对正确的,这是一个非常常见的错误。我一直这么做,真的应该有一个编译器警告它。所有给出的答案都是绝对正确的,这是一个非常常见的错误。我一直这么做,真的应该有一个编译器警告它。