【发布时间】:2019-11-17 05:59:27
【问题描述】:
我想使用扩展运算符克隆一个对象。但是,方法并没有如图所示复制
我知道你可以做 Object.Assign() 但我正在寻找一种使用 ES6 语法的方法
Deep copy in ES6 using the spread syntax 的解决方案涉及深度克隆:我只对复制方法和属性感兴趣
How to clone a javascript ES6 class instance 的解决方案使用了 Object.Assign()
class Test {
toString() {
return "This is a test object";
}
}
let test = new Test();
let test2 = { ...test };
console.log(String(test));
console.log(String(test2));
// Output: This is a test object
// Output: [object Object]
【问题讨论】:
-
使用
Object.create而不是传播。String(Object.create(test))随心所欲。 -
我想指出
Object.assign已添加作为 ES6 的一部分。因此,这有点像您正在寻找的东西...... -
ES6没有内置函数,你应该使用
lodash中的cloneDeep()方法
标签: javascript cloning