具有存储功能的克隆对象

JSON.parse(JSON.stringify(object))使用存储在第一个对象中的函数克隆对象后,不会克隆到第二个对象:


obj1: {

   first: true,

   second: function() { return 'test';}

}

var obj2 = JSON.parse(JSON.stringify(obj1));

克隆后obj2本身只有第一个属性,如下所示:


obj2: {

   first: true

}

有没有办法克隆函数属性?


qq_遁去的一_1
浏览 126回答 2
2回答

手掌心

你试过这个吗?obj2 = { ...obj1 };如果您想深度克隆您的对象并将其用作const _ = required('lodash');obj2 = _.cloneDeep(obj1);

暮色呼如

函数不能编码为 JSON。您可以将扩展语法用于浅克隆:let obj1 = {a: 10, b: () => "test"};let obj2 = {...obj1};// obj2: {a: 10, b: () => "test"}请注意,这是一个浅克隆。所以假设你有一些其他属性c是obj1一个对象,这段代码不会克隆c。相反,它只会指向obj2.c与 相同的对象obj1.c。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript