2
我知道AS3通常不允許方法或運算符重載,但我確實認爲我之前已經看到[]運算符的解決方法。基本上,我試圖從一個字典繼承或包裝 - 我不一定關心它 - 併爲該運算符創建稍微特殊的行爲,即在連續兩次使用它的情況下(object [x] [y] )。我可以使用這種特殊的解決方法或漏洞嗎?謝謝!在AS3中,如何覆蓋[]運算符的setters和getters?
我知道AS3通常不允許方法或運算符重載,但我確實認爲我之前已經看到[]運算符的解決方法。基本上,我試圖從一個字典繼承或包裝 - 我不一定關心它 - 併爲該運算符創建稍微特殊的行爲,即在連續兩次使用它的情況下(object [x] [y] )。我可以使用這種特殊的解決方法或漏洞嗎?謝謝!在AS3中,如何覆蓋[]運算符的setters和getters?
使用Proxy
類可以覆蓋getters
和setters
。
如果擴展Proxy
,使你dynamic
類,你就可以重寫這些方法:
使用[]
運營商將適用於本作預期的(即,如果覆蓋x
的獲取者,則thing.x
將與thing["x"]
相同)。
如果您看看我上面添加到Proxy類的鏈接,有示例代碼塊會演示如何實現您正在嘗試執行的操作。