似乎有办法,但我没有看到。过去,我曾在 Object 上使用 valueOf() 和 toString() 方法来使自定义对象根据上下文在数字或字符串中表现,但我想做更多。
2 回答
正如 groady 已经说过的那样,这是不可能的......在你描述的场景中也不可能......但问题是,在运行时,类型检测机制非常简单......查找特征对象,并检查是否它匹配一个类/子类,或者它是否明确实现和接口......在任何其他情况下,你都会遇到错误......你可以使用代理来实现你自己的数组访问......但是,它们不会是数组,因此将它们传递给需要 Array 的函数会导致错误……此外,在 AS3 中,您不能重载运算符,因此您真的很难……您可以为数值创建一个类,但随后对其进行操作会需要加法、减法等方法……但是,在 jira 上有一个相关的请求...仍然,这不会完全解决您的问题,因为您无法控制对象响应运算符的方式...如果您在 ECMA 兼容模式下编译,您可能会绕过严格的运行时类型检查,但是另一方面,你会失去很多速度......最好的事情可能真的是创建一个必须通过方法而不是运算符来操作的类......不太舒服,但最好的 AS3 提供......
问候
back2dos
基本上没有。最终是最终的,所以它们不能被延长。您可以创建一个与 Number 类具有所有相同方法的类,但就编译器而言,它仍然不是Number 。
老实说,永远不应该有理由需要从这些类进行扩展。
就代理而言,您可以考虑创建一个返回预先格式化的字符串/数字的工厂类,例如:
var myString:String= StringFactory.asCurrency("50"); // "$50.00"