javascript - 如何在 JS 构造函数中复制属性而不更改原始属性
问题描述
我是 JS 构造函数的新手。我有一个对象/构造函数。该函数将数据作为属性。但是我需要两份数据:一份用于更改,一份作为重置参考。但是,无论如何,改变一个似乎会改变另一个:
var myData = [1, 2, 3, 4, 5]
myFunction(myData)
function myFunction(data){
this.updatableData = data;
this.resetData = data;
this.updatableData.pop()
console.log(this.resetData)
//expect [1,2,3,4,5]
//but get [1,2,3,4]
}
解决方案
使用扩展语法制作原始数组的副本
var myData = [1, 2, 3, 4, 5]
myFunction(myData)
function myFunction(data){
this.updatableData = data;
this.resetData = [...data];
this.updatableData.pop()
console.log(this.resetData)
}
推荐阅读
- sql - 结合两个查询并从结果中生成一个无重复列表
- c# - 如何使用 Javascript 将特定数据从 webgrid 传递到 MVC 控制器?
- python - 如何使用 Python 将多张图片对角线合并为一张图片
- sql-server - 将结构未知的表转换为键/值
- javascript - Chrome 不要求在服务器中允许位置
- svg - 如何使用 css stroke-dasharray 为我的多边形设置动画?
- angular - 订阅第一次 oninit 不起作用的主题
- java - 使用 JAVA 将图像上传到 ActiveCollab API 时出现问题
- python - 在不将整个工作表加载到数据框的情况下读取特定的 excel 单元格值?
- go - 检查 X509 证书是否与 CertificateRequest (CSR) 匹配