• jquery的$.extend和$.fn.extend作用及区别,兼它们的一些小细节


     $.extend(obj);是为了扩展jquery本身,为类添加新的方法
       $.fn.extend(obj);给JQUERY对象添加方法。
    如(1):

       $.extend({
    
            add:function(a,b){
    
                return a+b;
            }
    
        })
    
        $.add(5,8) //return  13

    注意没有,这边的调用直接调用,前面不用任何对象。直接$.+方法名

    (2):

    $.fn.extend({
    
        clickwhile:function(){
    
            $(this).click(function(){
    
                 alert($(this).val()) 
    
            })
    
        }
    
    })
    
    $('input').clickwhile();//当点击输入框会弹出该对象的Value值

    注意调用时候前面是有对象的。即$('input') 这么个东西。

    前面介绍了它们的本质区别,现在具体介绍一下它们分别的细节
    其实$.extend()有两种写法
    (1)$.extend(obj);
            这是只有一个参数,代表的意义是:为jQuery类添加类方法,可以理解为添加静态方法,也就是全局方法。
    (2)$.extend( target, object1,  object2,  object3,  object4,[objectN]);
            这是两个或两个以上的参数,代表的意义是:用一个或多个其他对象来扩展一个对象,返回被扩展的对象。即也就是扩展和覆盖了第一个对象。
          

    (function ($) {
                var aaa={name:'1',age:'20',sex:'NV'};
                var bbb={name:'2',age:'18'};
                var ccc = $.extend( aaa, bbb);
                alert(ccc.sex);//NV
                alert(aaa.name);//2
            })(jQuery);

    不知大家见过 $.extend({}, aaa, bbb)中带{}吗?请看下面

    (function ($) {
                var aaa={name:'1',age:'20',sex:'NV'};
                var bbb={name:'2',age:'18'};
                var ccc = $.extend({}, aaa, bbb);
                alert(ccc.sex);//NV
                alert(aaa.name);//1
            })(jQuery);

    为何alert(aaa.name)的结果不同?如果你知道就不用往下看了
          这是因为:多个对象参数合并时,会破坏第一个对象的结构,所以可传递一个空对象作为第一个参数

    $.fn.extend(obj);
         $.fn 中的fn是什么意思?
        其实是prototype,即$.fn=$.protoytpe;
       如果你知道原型就会立即明白他的意思

  • 相关阅读:
    npm版本管理
    spring框架学习笔记5:SpringAOP示例
    spring框架学习笔记4:SpringAOP实现原理
    spring框架学习笔记3:使用注解代替配置文件
    spring框架学习笔记2:配置详解
    spring框架学习笔记1:搭建测试
    struts2框架学习笔记7:struts2标签
    struts2框架学习笔记6:拦截器
    struts2框架学习笔记5:OGNL表达式
    struts2框架学习笔记4:获取参数
  • 原文地址:https://www.cnblogs.com/leejersey/p/4125711.html
Copyright © 2020-2023  润新知