JSON.parse(JSON.stringify(object))使用存储在第一个对象中的函数克隆对象后,不会克隆到第二个对象:obj1: { first: true, second: function() { return 'test';}}var obj2 = JSON.parse(JSON.stringify(obj1));克隆后obj2本身只有第一个属性,如下所示:obj2: { first: true}有没有办法克隆函数属性?
2 回答
手掌心
TA贡献1942条经验 获得超3个赞
你试过这个吗?
obj2 = { ...obj1 };
如果您想深度克隆您的对象并将其用作
const _ = required('lodash');
obj2 = _.cloneDeep(obj1);
暮色呼如
TA贡献1853条经验 获得超9个赞
函数不能编码为 JSON。
您可以将扩展语法用于浅克隆:
let obj1 = {a: 10, b: () => "test"};
let obj2 = {...obj1};
// obj2: {a: 10, b: () => "test"}
请注意,这是一个浅克隆。所以假设你有一些其他属性c是obj1一个对象,这段代码不会克隆c。相反,它只会指向obj2.c与 相同的对象obj1.c。
添加回答
举报
0/150
提交
取消
