Dmi*_*eev 132 javascript javascript-objects ecmascript-6
谷歌搜索"javascript克隆对象"带来一些非常奇怪的结果,其中一些是绝望的过时,有些只是太复杂,不是那么容易:
let clone = {...original};
Run Code Online (Sandbox Code Playgroud)
这有什么不对吗?
Mar*_*ust 210
完全可以接受,甚至现在对象传播是第3阶段.人们过于复杂化.
const clone = {...original}
克隆
const newobj = {...original, prop: newOne}
不可避免地将另一个道具添加到原始文件并存储为新对象.
Alb*_*era 59
使用Object.assign.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
var obj = { a: 1 };
var copy = Object.assign({}, obj);
console.log(copy); // { a: 1 }
Run Code Online (Sandbox Code Playgroud)
但是,这不会成为深刻的克隆.到目前为止还没有深层克隆的原生方式.
编辑:正如评论中提到的@Mike'Pomax'Kamermans,您可以深度克隆简单对象(即没有原型,函数或循环引用) {...obj}
如果您使用的方法不能很好地处理涉及Date等数据类型的对象,请尝试此操作
进口 _
import * as _ from 'lodash';
Run Code Online (Sandbox Code Playgroud)
深度克隆对象
myObjCopy = _.cloneDeep(myObj);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
94176 次 |
最近记录: |