在javascript对象中更新moment.js对象而不更新值

时间:2017-05-03 07:43:42

标签: javascript object momentjs updating

我正在创建一个新的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'];

}

enter image description here

更新

对我的对象执行JSON.stringify确实显示它们都具有相同的日期,即2017-05-08。但后来我的问题是"当我访问属性object.start_date将对象设置到日历上时,为什么object.start_date会说2017-05-04"?这是stringify输出图像:enter image description here

更新2

route.changeStartDate只是我创建的一个实例函数,用于尝试更新" starts_at"第二次是字段,因为它似乎没有在Route类的构造函数中更新。这是代码:

changeStartDate(start_date){
    this.starts_at = moment(start_date)
}

0 个答案:

没有答案