actionscript-3 - ActionScript 3 : Why would you omit the new keyword when instantiating a custom eventDispatcher?

标签 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 关键字时,它实际上只是调用父类(super class)(eventDispatcher)构造函数吗?

最佳答案

这不是创建新实例,而是类型转换

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

var thermometer:Thermometer = event.target as Thermometer;

两者本质上是同一件事,但是当使用支持自定义对象的代码建议/完成的编辑器时,Class(something) 符号是首选,因为它将使编辑器能够提供建议根据您的类型转换。

关于actionscript-3 - ActionScript 3 : Why would you omit the new keyword when instantiating a custom eventDispatcher?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7080696/

相关文章:

c++ - 指向函数签名中 const 的智能指针

casting - 迭代+类型转换

flash-cs4 - 如何使 MovieClip 在 AS3 中自行删除?

ios - Instagram 过滤 RGBA 值

flash - swc 和外部 swf 中的字体之间的冲突

actionscript-3 - 删除对对象的所有引用会删除该对象内的事件监听器?

android - 如何在 AIR 中访问存储在 File.applicationStorageDirectory 中的文件,适用于 Android

flash - 参数错误 : Error #2015: Invalid BitmapData

javascript - Flash、ActionScript 和 JavaScript - 函数未定义

haskell - Data.Typeable.cast 到现有类型