• 区别和详解: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}
  • 相关阅读:
    【Luogu1095】守望者的逃离
    python基础学习1-类相关内置函数
    python基础学习1-面向对象
    python基础学习1 -异常捕获
    python基础学习1-类,对象
    python基础学习1-正则表达式
    python基础学习1-反射
    python基础学习1-日志信息
    python基础学习1-生成器,递归函数
    python基础学习1-json,pickle的序列化和反序列化
  • 原文地址:https://www.cnblogs.com/xiaobaiskill/p/8875067.html
Copyright © 2020-2023  润新知