ActionScript 3:为什么在实例化自定义eventDispatcher时会省略new关键字?

时间:2011-08-16 15:23:18

标签: actionscript-3 actionscript casting

我目前正在阅读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)构造函数?

1 个答案:

答案 0 :(得分:7)

这不是创建新实例,而是强制转换

这意味着事件对象的target属性由Event类强制转换为Object,因此告诉编译器目标实际上是Thermometer类的一个实例,它被强制转换为这种风格。你也可以这样写:

var thermometer:Thermometer = event.target as Thermometer;

这两个本质上意味着相同的事情,但是当使用支持自定义对象的代码建议/完成的编辑器时,Class(something)表示法是首选,因为它将使编辑器能够根据您的演员表提供建议。 / p>