0

我不知道这是否有一个特殊的名字,甚至可能。考虑这段代码;

public dynamic class Foo {
    public function set (_key:String,_value:*):void {
        this[_key] = _value;
        trace(this[_key] + " property added.");
    }
}

跟踪表示要使用属性键和/或值完成的一些额外工作。现在我们可以使用 set 函数创建任何属性。

myFoo.set("prop1",14);
myFoo.set("prop2","test");
etc...

有没有办法修改这个函数,让它对任何属性都生效?

myFoo.prop1=14;
myFoo.prop2="test";

我希望它像一个全局设置器函数一样在您创建/修改对象的任何属性时生效。我打算以类似的方式创建一个 get 函数。

4

1 回答 1

2

您将需要扩展代理类并覆盖setProperty

override flash_proxy function setProperty(_key:*, _value:*):void {
    this[_key] = _value;
    trace(this[_key] + " property added.");
}
于 2013-05-24T20:28:19.290 回答