【发布时间】:2012-03-06 17:58:13
【问题描述】:
当您使用 Object(null) 将 null 强制转换为对象时,结果是一个对象。
当您使用 Object(undefined) 将 undefined 强制转换为对象时,结果是一个对象。
但是说null as Object 或undefined as Object 仍然为空。
这是为什么?我在文档中找不到任何关于此的内容。
这些转换产生的对象可以设置属性并从中读取。就好像演员创建了信息,或者删除了 null 和 undefined 值具有的任何特殊信息。但在 AS3 文档中没有表明 null 和 undefined 特殊类型实际上是对象。
【问题讨论】:
-
简单的答案?因为它是flash,而且flash是坏的。编写带有尾括号的类型是声明一个新对象,并且您将 null 作为构造函数参数传递给复制或重新解释类型转换。它本质上与 var o = new Object(null); 相同。您仍在创建对象。
-
你说对了一半,@AscensionSystems。您正在创建一个对象,但它与调用
new Object()不同,即使结果相同。最重要的是要理解Object( something )根本不是类型转换:它调用名为Object的顶级函数,它试图返回Object 值 的东西。而且,事实证明,null的 Object 值是一个空 Object。 help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/… -
您需要了解 null 和 undefined 实际上是什么。 Null 是指已声明变量但没有任何值的情况。如果一个变量没有被声明,那么它是未定义的并且会出现编译器错误。跟踪(空 == 未定义); //输出true和trace(null === undefined); //输出错误
-
有趣的 nfo 伙计们,我回家后会检查一下。 Flash确实是一种奇怪的动物。
-
weltraumpirat — 为什么
null的对象值是一个空对象?从您引用的页面中:“ActionScript 3.0 中的每个值都是一个对象,这意味着对一个值调用 Object() 会返回该值。”这似乎与本次讨论中迄今为止给出的所有解释相矛盾,而不是强化。
标签: actionscript-3 actionscript