在 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.
这显然是错误的,但我想知道为什么会这样。我的理论是 Date 强制转换,就像 Number 强制转换一样,已经被覆盖以尝试转换给定的类型,而不仅仅是强制转换它。
有趣的是,将任何其他内容转换为 Date 并将其分配给 Date 也会失败:
var date : Date = Date("1/2/3");
var date : Date = Date(123);
// (Both fail)
但是将其分配给 Object 成功:
var object : Object = Date(new Date(2012, 01, 01));
var object : Object = Date("1/2/3");
var object : Object = Date(123);
// (All succeed)