2009-09-25 49 views
0

如何獲得引用在actionscript 3中的getter和setter函數?在actionscript 3中引用getter/setter函數

如果在呼叫上定義了一個方法,例如,

public function blah():String { ...} 

我可以隨便說blahthis.blah

如何獲得一個參考

public function get blah2():String {} 
public function set blah2(b:String):void {} 

由於得到它做參考!

回答

2

原始回覆:

不幸的是,您將無法將引用保存爲函數。 getter和setter方法實際上是建立在你不應該能夠這樣的想法的基礎上的,因此它們作爲一個屬性起作用。

是否有一個原因,你需要具體參考功能?


我回應的評論:

我想基於自定義元數據標籤,例如動態添加外部接口方法[外部]。我能夠爲常規方法做到這一點,但我試圖將其擴展到getter/setters。爲此,我需要動態獲取對函數的引用,所以我可以使用apply函數使用正確的參數來執行它。

我認爲你最好在這種情況下使用多步驟的方法。由於getter和setter作爲一個屬性而不是一個方法,因此測試它是否屬於某個屬性並直接給它賦值是有意義的。你可以使用這個:

if(foo.blah2 is Function) 
{ 
    foo.blah2.apply(foo, arr); 
} 
else 
{ 
    foo.blah2 = arr[ 0 ]; 
} 
+0

我想基於自定義元數據標籤,例如動態添加外部接口方法[外部]。我能夠爲常規方法做到這一點,但我試圖將其擴展到getter/setters。 爲此,我需要動態獲取對函數的引用,所以我可以使用apply函數使用正確的參數來執行它。 – whoisbenli 2009-09-25 19:10:19

+0

挑剔:如果存在'public function blah():Function'的屬性,則該代碼將產生不希望的結果,因爲存儲在'blah'下的函數將被調用。 – Vesper 2014-05-22 10:09:10