【问题标题】:In AS3, how can you override the setters and getters for the [] operator?在 AS3 中,如何覆盖 [] 运算符的 setter 和 getter?
【发布时间】:2012-12-20 05:57:51
【问题描述】:
我知道 AS3 通常不允许方法或运算符重载,但我确实认为我以前见过 [] 运算符的解决方法。基本上我正在尝试从字典继承或环绕字典 - 我不一定关心哪个 - 并为该运算符创建稍微特殊的行为,即在它连续使用两次的情况下(object [x] [y] )。没有某种特殊的解决方法或漏洞我可以使用吗?谢谢!
【问题讨论】:
标签:
actionscript-3
inheritance
dictionary
operators
overloading
【解决方案1】:
您可以使用Proxy 类覆盖getters 和setters。
如果您扩展 Proxy 并将您的类设为 dynamic,您将能够覆盖这些方法:
使用[] 运算符将按预期应用于此(即,如果您覆盖x 的getter,thing.x 将与thing["x"] 相同)。
如果您查看我在上面添加到 Proxy 类的链接,就会发现一些示例代码块演示了如何实现您正在尝试做的事情。