jQuery.fn.extend(object)与jQuery.extend(object) 对JQuery进行扩展

文章转载自:http://caibaojian.com/jquery-extend-and-jquery-fn-extend.html ,略有补充以及修改

1.不同

虽然js没有类的概念,但这里方便理解可以把jQuery看成是一个封装好的类(类名就是jQuery,或者用$),里面有各种成员变量,成员函数。用jq选择器可以生成一个jq对象(如$("#test"))。

以下$代替jQuery。

$.fn.extend()=$.prototype.extend(),扩展的内容可以被任何jq对象使用。

$.extend(object),扩展的函数可以被jq“类”直接使用。可以理解为添加静态方法~(注意参数,只对应2 .1)的情形)

2.$.extend()

1) $.extend(object);

说明:给jq“类”扩展静态方法

例:

$.extend({

max:function(a,b){ return a>b?a:b;},

min:function(a,b){return a<b?a:b;}

});

$.max(2,3);//3

$.min(2,3);//2

2)$.extend(targetObject,mergeObject_1,mergeObject_2,...,mergeObject_N)

说明:merge的内容合并至target,相同的键后者的值覆盖前者的值;会更改target并且返回更改后的target。

相较于1)来说,2)更加常用!

例:

var obj_target={name:"ru",age:"22"};

$.extend(obj_target,{name:"di",sex:"female"});

console.log(obj_target) //{name:"di",age:"22",sex:"female"};

3.$.fn.extend()

可以理解为插件机制,想要让jq对象都拥有某种自定义方法的话就可以用这种办法,阅读jquery源码会发现这种方法很常见!

4.小结

其实$.fn.extend()和$.extend()没有必要去比较,两个都可扩展方法,但后者是静态方法;前者主要用于扩展插件,后者主要用于合并对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值