为了账号安全,请及时绑定邮箱和手机立即绑定

具有存储功能的克隆对象

具有存储功能的克隆对象

qq_遁去的一_1 2022-07-21 21:20:20
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);



查看完整回答
反对 回复 2022-07-21
?
暮色呼如

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。


查看完整回答
反对 回复 2022-07-21
  • 2 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号