在Flex中,您可以將函數添加到Class的原型中;但你如何添加一個setter?在Flex原型中添加setter
例如,對於一些A
(非動態)類,你可以這樣做:
var o:Object = new A();
A.prototype.myFunction = function():void{trace("foo");}
o.foo();
這將調用foo
功能。但是如何添加一個setter,以便設置屬性來調用setter(就像在A類中以「常規」方式聲明setter時那樣)。所以,我想是這樣的:
// doesn't work!
A.prototype["set myProperty"] = mySetter;
o.myProperty = "test"; // should call mySetter
PS:操縱原型是在Flex中做了一個不尋常的事情,而不是我一般建議。但是爲了這個問題,只是假設有一個動態添加setter的理由。
這是不正確的:「getter/setters在原型黑客遊戲中不可用」。 getter/setter自從至少使用Flash 5並且可能早於AS3類(AS2類僅僅是語法糖並編譯爲原型使用)之前就已經在使用。 – 2010-01-27 02:00:48