javascript - 更新对象副本更新原始
问题描述
我有一个与 javascript 中的对象有关的问题。我实际上需要将原始变量值的值放在一个临时变量中,以便稍后我可以参考它来执行业务逻辑。
问题是每当我修改原始变量值时,临时变量也会更新
将值放入临时变量中
这里 this.startingTime = 10:00
而 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(临时变量也得到更新,但这里我想要的是临时保持 12:00)
this.endingTime.setMinutes(this.endingTime.getMinutes() - 30);
解决方案
通过这样做,您将第一个变量的引用提供给临时变量,这就是它们一起更新的原因。
为了防止它,您应该使用类似object.assign
或cloneDeep
(这个是来自lodash
)的东西来创建一个新的引用。
推荐阅读
- typescript - 从类型中排除方法
- python - pdf2image.exceptions.PDFPageCountError:无法获取页数。错误
- swift - 如何通过 FirebaseUI Swift 5 注销和删除用户注册
- metabase - 元数据库中原生 Mongo 查询的变量支持
- python - python VisibleDeprecationWarning
- javascript - 我的 chrome "sleep" 扩展似乎没有运行
- vue.js - 动态地将 url 分配给卡片 vuejs
- c++ - catkin sudo 升级后找不到 qt_build
- node.js - Sequelize 忽略带有 UUID 的重复项
- javascript - 为什么我不能从 getElementsById 检索子元素
标签?