在ActionScript中,我发现将日期(Date)强制转换成日期(Date),并将其分配给一个Date类型的变量会抛出TypeError异常。
这显然是错误的,但我想知道为什么会发生这种情况。我的理论是,像数字转换一样,日期转换也被覆盖以尝试转换给定类型而不仅仅是强制转换它。
有趣的是,将任何其他类型转换为日期并将其分配给日期也会失败:
var date : Date = Date(new Date(2012, 01, 01));
Error #1034: Type Coercion failed: cannot convert "Wed Aug 22 17:06:54 GMT+1000 2012" to Date.
这显然是错误的,但我想知道为什么会发生这种情况。我的理论是,像数字转换一样,日期转换也被覆盖以尝试转换给定类型而不仅仅是强制转换它。
有趣的是,将任何其他类型转换为日期并将其分配给日期也会失败:
var date : Date = Date("1/2/3");
var date : Date = Date(123);
// (Both fail)
但将它分配给一个对象会成功:
var object : Object = Date(new Date(2012, 01, 01));
var object : Object = Date("1/2/3");
var object : Object = Date(123);
// (All succeed)
var a:Array = Array([1, 2, 3])
将创建一个新的数组,其中包含数组[1, 2, 3]
作为其第一个和唯一元素。强制类型转换只能像这样完成:var a:Array = [1, 2, 3] as Array
。 - RIAstar