我正在创建一个新的Javascript对象并将值传递给我希望该对象具有的构造函数。一个值是一个时刻对象(持有一个日期)我可以看到日期是正确的(2017-05-09)但新构造的对象总是具有值2017-05-04。如果我在属性:object.start_date上执行console.log,那么我能够看到正确的日期,但如果我在对象上执行console.log,它会显示错误日期的时刻对象2017-05-04。我尝试在构造函数中进行更新,在创建后手动对对象进行更新,或者使用新的实例函数更新创建的对象中的值,但没有任何更改日期。这是一些代码/输出。
主要问题:为什么片刻对象没有按照我给出的正确值进行更新?
谢谢。 创建新路线的功能:
duplicateRouteSuccess(data) {
let route = new Route(data['routeData']);
route.changeStartDate(data['routeData']['starts_at']);
console.log(route);
console.log(route.starts_at);
this.routeCalendar.scheduleRoute(route, route.repeats);
this.close();
}
和构造函数:
constructor (data) {
this.id = data['id'];
this.name = data['name'];
this.starts_at = moment(data['starts_at']);
this.repeats = data['repeats'];
this.repeat_rate = data['repeat_rate'];
}
更新
对我的对象执行JSON.stringify确实显示它们都具有相同的日期,即2017-05-08。但后来我的问题是"当我访问属性object.start_date将对象设置到日历上时,为什么object.start_date会说2017-05-04"?这是stringify输出图像:
更新2
route.changeStartDate只是我创建的一个实例函数,用于尝试更新" starts_at"第二次是字段,因为它似乎没有在Route类的构造函数中更新。这是代码:
changeStartDate(start_date){
this.starts_at = moment(start_date)
}