Actionscript为...... in 提供循环,以通过键引用正在迭代的元素。
但 for ... each ... in 循环产生元素的副本,而不是对正在迭代的集合中的原始元素的引用。有没有办法获得它的参考,或者我必须诉诸 for ... in ?
考虑假设:
for each( var &iter:* in collection )
我知道在actionscript中没有这样的解除引用操作符,但是你能通过其他方式在这里获得引用吗?
PS :Adobe's documentation声明:
variableIterant:* - 充当迭代器的变量的名称,引用集合中的项目。
虽然它是一个按值而不是参考的副本。
答案 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