如何实现深拷贝

一、JSON. parse (JSON. stringify())
JSON. stringify():将对象转成JSON 字符串。
JSON. parse():将字符串解析成对象。
通过JSON. parse (JSON. stringify())将JavaScript 对象转序列化(转换成JSON字符串),再将其还原成JavaScript对象,一去一 来我们就产生了一个新的对象,而且对象会开辟新的栈,从而实现深拷贝。

此方法虽然简单,但是却有很多局限性。

1、不能存放函数或者 Undefined,否则会丢失函数或者 Undefined;
2、不要存放时间对象,否则会变成字符串形式;
3、不能存放 RegExp、Error 对象,否则会变成空对象;
4、不能存放 NaN、Infinity、-Infinity,否则会变成 null;

二、.函数库Lodash
Lodash作为一个JavaScript 函数库/工具库,它里面有非常好用的封装好的功能,大家可以去试试,这里我们查看下它的cloneDeep() 方法,该方法会递归拷贝value。

首先需要npm先下载lodash包

三、框架jQuery中extend() 方法

你可能感兴趣的:(如何实现深拷贝)