区别和详解:jQuery.extend()和jQuery.fn.extend()

一、jQuery.extend()

  将jQuery看成一个类,jQuery.entend(),就可以理解成是对jQuery 的一个扩展

  例如:

$.extend({
   speak:function(){
       alert('say')
     } 
})
// 调用方式
$.speak()

  这个扩展也就是所谓的静态方法,只跟这个类本身有关。跟你具体的实例化对象是没关系的。也就是说无需实例化对象即可调用,----静态方法 扩展 

 

 二、jQuery.fn.entend()

  从字面理解嘛,这个拓展的是jQuery.fn的方法.  jQuery.fn = jQuery.prototype.对prototype肯定不会陌生啦。 

  例如:

$.fn.extend({
    speak:function(){
        alert('say')
    }
});

// 调用方式
$('div').speak()

 

  这个扩展就是 对实例对象的扩展。jQuery是一个封装得非常好的类,比如我们用 语句 $(“#btn1″) 会生成一个 jQuery类的实例。所以jQuery.fn.extend拓展的是jQuery对象(原型的)的方法啊!

 

三、两者区别

  1、调用方式不同:

     jQuery.extend(),一般由传入的全局函数来调用,主要是用来拓展个全局函数,如$.init(),$.ajax();

     jQuery.fn.extend(),一般由具体的实例对象来调用,可以用来拓展个选择器,例如$.fn.each(),$('div').click();

   2、两者的主要功能作用不同:

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

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

  3、大部分插件都是用jQuery.fn.extend()

 

 四、jQuery.entend()  特殊用法

  将 a1,a2 扩展到b中,并返回复制给c

var a1 = {'a':1,'b':2},a2 = {'a':'aaa'},b = {'c':222,'d':'jmz'};
var c = $.extend(b,a1,a2);   // c == b=={c: 222, d: "jmz", a: "aaa", b: 2}

 

转载于:https://www.cnblogs.com/xiaobaiskill/p/8875067.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值