天天看点

30、jQuery 的属性拷贝的实现原理是什么,如何实现深浅拷贝?

作者:池梓沐

jQuery.extend() 函数用于将一个或多个对象的内容合并到目标对象。

语法

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

指示是否深度合并

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

注意:不支持第一个参数传递 false 。

30、jQuery 的属性拷贝的实现原理是什么,如何实现深浅拷贝?

深拷贝:深拷贝代码把 extend 函数的第一个参数设置为 true:(对原始对象属性所引用的对象进行递归拷贝)var newObject = $.extend(true, {},oldObject);

浅拷贝:浅拷贝代码 extend 函数里不传入第一个参数,默认为 false(只复制一份原始对象的引用)var newObject = $.extend({}, oldObject);