$.extend $.fn.extend

jQuery.fn = jQuery.prototype={
}
jQuery.extend = jQuery.fn.extend =function(){
}
由以上的代码可以看出,extend方法既是原型方法也是静态方法,并且
jQuery.extend === jQuery.fn.extend//true

他们在堆内存中都指向同一个函数。jQuery的实例也可以访问。

此方法用来扩展调用它的【对象本身】的方法,上面代码中就是用来扩展jQuery和jQuery的原型的方法。

使用语法:

$.extend(deep,target,object1...)
$.fn.extend(deep,target,object1...)

deep:布尔值,表示是否深度拷贝。可省略
target:目标Object,扩展的方法和属性都添加到这个上面。省略时默认为调用此函数的对象。通俗点来说,就是你要将之后的属性合并到哪儿,就是这儿。
object:需要合并的对象。

可以将target,object理解成同一种,都是往前合并。

注:extend()参数只有两种情况,含deep和不含deep。含有deep时,第二个参数则认为是目标对象;不含时,默认为是调用extend函数的对象。

$.extend(obj1,obj2);//将obj1,obj2合并到jQuery对象中。
var o=$.extend(true,{},obj1,obj2};//将obj1,obj2合并到新的对象并返回这个对象。
$.extend(true,box,obj1,obj2);//合并到box中


引申出的问题:

命名空间:开辟另一个空间,将一些对象,方法放在里面,用以区别于其他名称空间相同名字的方法,对象。更是避免全局变量、属性泛滥的好办法。参考

深度拷贝和浅拷贝:

合并对象时,对象的属性有可能又是一个对象,是否合并里面的对象的属性那就是deep。深拷贝时为true,表示合并里面的对象;反之,浅拷贝则为false,表示只拷贝第一层。拷贝过程中,若有相同名称的,均采取后面的覆盖前面的方式。参考



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值