【发布时间】:2019-05-21 10:24:10
【问题描述】:
我在 javascript 中有一个 for 循环,它连接 calendarEvents 中的数据:
drop(info) {
var that = this;
var startDate = info.date;
var frequency = this.skippingNumber;
for (var i = 0; i <= 3; i++) {
(function (start) {
that.calendarEvents = that.calendarEvents.concat({
title: 'Dropped Event',
start: start,
allDay: info.allDay
});
})(startDate);
startDate = this.addDays(startDate, frequency);
}
}
addDays(date: Date, days: number): Date {
var passedDate = date;
passedDate.setDate(passedDate.getDate() + days);
return passedDate;
}
如果我在循环中记录 startDate,我会得到实际值,即 星期一、星期二、星期三、星期四。但是当我记录 calendarEvents 时,我得到的所有数据都是星期四。 谁能帮我这个? 提前致谢!!
【问题讨论】:
-
您的
startDate是同一个对象,并且您每次都在传递对它的引用。 -
addDays()的所有调用都作为参数接收,修改并返回相同的对象 (var startDate = info.date)。 -
看看here
标签: javascript typescript