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

Pet*_*uza 1 iteration actionscript actionscript-3

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

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

考虑一下假设:

for each( var &iter:* in collection )
Run Code Online (Sandbox Code Playgroud)

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

PS:Adobe的文档说明:

variableIterant:* - 用作迭代的变量的名称,引用集合中的项.

虽然它是按价值而不是参考的副本.

Mar*_*rty 5

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

呃......不,不.否则此测试将产生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
Run Code Online (Sandbox Code Playgroud)