您的位置:首页 > 其它

extend()

2017-12-19 17:39 113 查看

extend()简介

extend方法挂载在jQuery和jQuery.fn两个不同对象上方法.

官方给出解释:

Query.extend(): Merge the contents of two or more objects together into the first object.(把两个或者更多的对象合并到第一个当中);

jQuery.fn.extend():Merge the contents of an object onto the jQuery prototype to provide new jQuery instance methods.(把对象挂载到jQuery的prototype属性,来扩展一个新的jQuery实例方法)

简单理解两者区别:

jQuery.extend(object); 为扩展jQuery类本身,为自身添加新的方法。

jQuery.fn.extend(object);给jQuery对象添加方法。

extend()使用

jQuery.extend(object);

jQuery.extend( target [, object1 ] [, objectN ] )合并object1, objectN到target对象,如果只有一个参数,则该target对象会被合并到jQuery对象中

jQuery.extend( [deep ], target, object1 [, objectN ] );深度复制合并对象,第一个参数是boolean类型的true时,将object1, objectN深度复制后合并到target中;

关于深度复制,是将除null, undefined,window对象,dom对象,通过继承创建的对象外的其它对象克隆后保存到target中;所排除的对象,一是考虑性能,二是考虑复杂度(例如dom及window对象,如果克隆复制,消耗过大,而通过继承实现的对象,复杂程度不可预知,因此也不进行深度复制);

深度与非深度复制区别是,深度复制的对象中如果有复杂属性值(如数组、函数、json对象等),那将会递归属性值的复制,合并后的对象修改属性值不影响原对象.

jQuery.fn.extend(object);

 jQuery.fn = jQuery.prototype 即指向jQuery对象的原型链,对其它进行的扩展,作用在jQuery对象上面;一般用此方法来扩展jQuery的对象插件。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  extend