【js】深拷贝一文中的几个错误点

时间:2024-01-13 23:09:26

原文:https://www.cnblogs.com/wuhairui/p/10370227.html

得到网友反馈,试过后也再查了下资料:

1.JSON.parse(JSON.stringify(obj))方式:无法深拷贝对象中的函数

【js】深拷贝一文中的几个错误点

结果(对象被深拷贝了,但是函数消失了):

【js】深拷贝一文中的几个错误点

2.{...obj}和Object.assign({},obj)一样。也可以进行一次深拷贝,但内部的拷贝无法完成。

【js】深拷贝一文中的几个错误点

结果(obj的b1被改了):

【js】深拷贝一文中的几个错误点

3.去网上找了一下。有个近乎完美深拷贝的简单解决方案,就是使用jquery的$.extend。可以深拷贝多级对象和数组。对象内的函数也深拷贝了。

但只能在引入jquery后使用。

【js】深拷贝一文中的几个错误点

结果(均得到了深拷贝):

【js】深拷贝一文中的几个错误点

所以,结合之前的几种方案。没有真正完美的解决方案。什么时候用什么比较合适就可以了。