我想使用扩展运算符克隆一个对象。然而,方法不会被复制,如下所示。
我知道可以使用Object.Assign()来实现,但我正在寻找一种使用ES6语法来实现的方法。 Deep copy in ES6 using the spread syntax 中提供了关于深层复制的解决方案:我只对复制方法和属性感兴趣。 How to clone a javascript ES6 class instance 中使用了Object.Assign()函数。
我知道可以使用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))
可以像你所想的那样工作。 - rlemonObject.assign
是ES6的一部分。 因此,它可能是您要寻找的东西... - Akxelodash
中的cloneDeep()
方法。 - Ahmet Zeybek