`

一个对Array类型强制转换的小陷阱

    博客分类:
  • FLEX
阅读更多
AS的类型转换有两种方式
第一种:
//括号形式
User(u).name = "zhangshan";

第二种:
//as表达式
(u as User).name = "zhangshan";

    对于一般的对象,这两种方法是等效的,转换失改时,第一种会抛异常,第二种会转换为空对象。
    但是对于数组Array,这两种是不一样的,as表达式的方法还是一样,不说了,使用括号就是不行,说一下。
//括号形式
var a:Object = new Array();
Array(a).push("zhangshan");
//这里会打出0来
trace(a.length);

    其实开发工具也有个警告,对数组使用强制转换等于新建了一个数组,所以对于数组只能用as表达式来进行转换。ArrayCollection没有类似问题。
分享到:
评论
1 楼 ibio 2010-05-05  
LZ 非常仔细。
通常涉及到类型转换时我用 as,基本都不会出错。

相关推荐

Global site tag (gtag.js) - Google Analytics