【发布时间】:2020-03-28 18:38:14
【问题描述】:
所以我在这里遇到了一个与更改日期对象的月份有关的奇怪错误。这是代码。
let date = new Date();
let captions = [];
for (let i=0; i < 12; i++) {
let newDate = date;
newDate.setMonth(date.getMonth() - i);
let month = newDate.toLocaleString('default', { month: 'short' });
let year = newDate.getFullYear();
captions.push({month, year});
}
问题是日期变量的值在每个循环中都在变化。我能理解为什么。
有人吗?
【问题讨论】:
-
因为
=不克隆 Date 对象,它只是创建一个单独的引用对同一个对象(顺便说一句,这不是 Date 对象特有的,这就是所有对象在 JS 中工作)。 -
不错!立即获取!
标签: javascript date object