javascript - 将 Date 实例传递给 Date 构造函数以克隆 Dates

标签 javascript date

根据MDN ,我们只能将以下类型的参数传递给 Date 构造函数:

new Date();
new Date(value); // Unix timestamp
new Date(dateString);
new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);

因此从技术上讲,我们无法将另一个 Date 实例传递给 Date 构造函数。

但是,以下内容在 Firefox 和 Chrome 中运行良好:

new Date(new Date(1990, 1, 1));

为什么它有效?这是克隆 Date 对象的正确方法吗?

最佳答案

根据ECMAScript specification ,第9版(2018年6月起)

If Type(value) is Object and value has a [[DateValue]] internal slot, then Let tv be thisTimeValue(value).

因此,您观察到的行为是一个标准(而不是一些实验),并且应该由所有现代浏览器实现。

关于javascript - 将 Date 实例传递给 Date 构造函数以克隆 Dates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57482826/

相关文章:

javascript - 如何在命名空间: MobX内使用装饰器

javascript - 基于 CSS 规则的 SlickGrid 行高

mysql - 创建预订系统,但我很难将输入日期插入 MySQL 表

Bash:从另一个时区获取日期和时间

javascript - 使用循环设置 HTML 文本

javascript - 具有动态行程的 SVG 仪表

django - 如何在 Django 中设置 SelectDateWidget 的 MaxDate 和 MinDate?

javascript - 比较 JavaScript 中的新日期失败

mysql - 当开始和结束位于不同的行和列时,合并不同 ID 的日期

javascript - 尝试使用 Javascript 替换 <script> 标记的内容