我有一个与javascript中的对象有关的问题。实际上,我实际上需要将原始变量值的值放在一个临时变量中,以供以后执行业务逻辑时参考。
问题是,每当我修改原始变量值时,临时变量也会被更新
将值放入临时变量
在这里this.startingTime = 10:00
and this.endingTime = 12:00
this.startingTime = new Date(this.selectedAvailability.scheduleDate + ' ' + this.selectedAvailability.startTime);
this.endingTime = new Date(this.selectedAvailability.scheduleDate + ' ' + this.selectedAvailability.endTime);
this.tempStartTime = this.startingTime;
this.tempEndingTime = this.endingTime;
更新为以下内容会更新原始照片和温度
this.endingTime = 11:30
this.tempEndingTime = 11:30(temp变量也被更新,但是我想要的是保持12:00的温度)
this.endingTime.setMinutes(this.endingTime.getMinutes() - 30);
答案 0 :(得分:0)
这样做,您将第一个变量的引用提供给临时变量,这就是它们一起更新的原因。
为防止这种情况,您应该使用object.assign
或cloneDeep
之类的东西(该名字来自lodash
)来创建新引用。
答案 1 :(得分:-1)
this.tempStartTime = angular.copy(this.startingTime);
this.tempEndingTime = angular.copy(this.endingTime);
尝试这个