Вы можете эффективно получить то же поведение, используя вспомогательный объект для имитации указателя - другими словами, используя его для переноса целевой ссылки.Например:
public class PseudoPointer
{
private var obj:Object;
private var prop:String;
public function PseudoPointer(obj:Object, prop:String)
{
// Point to property with name 'prop' on object 'obj'.
this.obj = obj;
this.prop = prop;
}
public function get value():* {
return obj[prop];
}
public function set value(value:*):void {
obj[prop] = value;
}
}
Тогда вы можете сделать это - предположим, что есть свойство magicNumber
для объекта с именем target
:
var numberPtr = new PseudoPointer(target, "magicNumber");
myDynamicObjectA.numberPtr = numberPtr;
myDynamicObjectB.numberPtr = numberPtr;
myDynamicObjectC.numberPtr = numberPtr;
Теперь любой объект, имеющий ссылкук псевдо-указателю можно прочитать и записать целевое свойство:
numberPtr.value = 42;