我目前正在阅读Actionscript 3 Bible,作者展示了一个创建自定义eventDispatcher类的示例.当该类稍后在代码中使用时,它被称为:
//Thermometer is a custom eventDispatcher that extends the eventDispatcher class. var thermometer:Thermometer = Thermometer(event.target); //why no new keyword?
我是一个新的程序员,如果有人能解释这是如何工作的,我很好奇吗?为什么省略new关键字?当你在扩展另一个类的类上省略new关键字时,它实际上只是调用超类(eventDispatcher)构造函数?
这不是创建新实例,而是在进行转换.
这意味着target
事件对象的属性由Event类强制转换为Object,因此告诉编译器目标实际上是Thermometer类的一个实例,它是以这种方式强制转换的.你也可以这样写:
var thermometer:Thermometer = event.target as Thermometer;
这两者本质上是相同的,但是当使用支持自定义对象的代码建议/完成的编辑器时,Class(something)
首选符号是因为它将使编辑器能够根据您的强制转换提供建议.