在 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)
但是将它分配给一个对象成功了:
var object : Object = Date(new Date(2012, 01, 01));
var object : Object = Date("1/2/3");
var object : Object = Date(123);
// (All succeed)
最佳答案
AS3 有时会非常困惑和不一致。 基本上您不会在该代码示例中强制转换任何内容。
AS3 有一些全局的 camelCased 函数,它们将优先于转换运算符。 Vector也有类似的全局函数。
当您在不使用 new 运算符的情况下执行 Date(bla) 时,它显然会创建该日期的字符串表示形式...尝试使用 as 运算符进行转换。
关于apache-flex - 为什么在 ActionScript 中将日期转换为日期会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12068035/