$.extend() 复制合并

$.extend( [deep ], target, object1 [, objectN ] );
deep :是否深度合并,默认false。
target:目标对象,输出的对象。
object1:被合并的对象。
.
.
.
.
objectn:可多个
后面覆盖前面的。
deep true和false 的区别.

$.extend(true,{'A1':{'A2':'a2','C2':'c2'},'B1':'b1'},{'A1':{'A2':'a22','B2':'b22'},'C1':'c1'});
$.extend(false ,{'A1':{'A2':'a2','C2':'c2'},'B1':'b1'},{'A1':{'A2':'a22','B2':'b22'},'C1':'c1'});
图片1.png

浅拷贝(false 默认):如果第二个参数对象有的属性第一个参数对象也有,那么不会进行相同参数内部的比较,直接将第一个对象的相同参数覆盖。

深拷贝(true):如果第二个参数对象有的属性第一个参数对象也有,还要继续在这个相同的参数向下一层找,比较相同参数的对象中是否还有不一样的属性,如果有,将其继承到第一个对象,如果没有,则覆盖。

浅拷贝(false)target的‘A1’会被object1的‘A1’直接覆盖, target ‘A1’的'C2'丢失。

深拷贝(true)target 的‘A1’和object1的‘A1’会继续比较,’A1’内相同的属性覆盖。target ‘A1’的'C2'不丢失,同名属性被object1的覆盖。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容