javascript的深拷贝和浅拷贝

2019-02-18  本文已影响0人  琴先森的博客

如何区分深拷贝和浅拷贝:简单来说就是假设B复制了,当修改A时看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。

实现深拷贝的方法

1.借用JSON对象的parse和stringfy。

2.借用JQ的extend方法。

$.extend([deep],target,object1[,objectN])

deep表示是否是深拷贝,为true为深拷贝,为false则为浅拷贝

target object类型 目标对象,其他对象的成员属性将被附加到该对象上

object1 objectN可选。Object类型第一个及第N个被合并的对象

3.使用Object.create()方法

直接使用var newObj = Object.create(oldObj),可以达到深拷贝的效果。

4.Object.assign()拷贝

当对象中只有一级属性,没有二级属性的时候,此方法为深拷贝,此方法在二级属性以后就是浅拷贝。

5.lodash函数库实现深拷贝

lodash.cloneDeep()

上一篇下一篇

猜你喜欢

热点阅读