as3 - 你能获得对for ... each ... in循环中元素的引用吗?

时间:2013-07-07 22:52:57

标签: actionscript-3 actionscript iteration

Actionscript为...... in 提供循环,以通过键引用正在迭代的元素。

for ... each ... in 循环产生元素的副本,而不是对正在迭代的集合中的原始元素的引用。有没有办法获得它的参考,或者我必须诉诸 for ... in

考虑假设

for each( var &iter:* in collection )

我知道在actionscript中没有这样的解除引用操作符,但是你能通过其他方式在这里获得引用吗?

PS Adobe's documentation声明:

  

variableIterant:* - 充当迭代器的变量的名称,引用集合中的项目。

虽然它是一个按值而不是参考的副本。

1 个答案:

答案 0 :(得分:5)

  

但for ... each ... in循环产生元素的副本而不是a   引用正在迭代的集合中的原始元素。

呃......不,不。否则,此测试将产生0 0

var a:Shape = new Shape();
var b:Shape = new Shape();
var list:Array = [a,b];

for each(var i:Shape in list) i.x = 10;

trace(a.x, b.x); // 10 10