• $.extend 的相关用法


    1.1 $.extend(result,item1,item2…..)

    将所有的参数项都合并result中,返回result,会破坏result的结构。

    1.2 $.extend({},item1,item2,……)

    将所得的结果全部合并在{}中,并返回,不会破坏原有的项的结构。

    1.3 $.extend(bool,{},item1,item2….)

    Extend方法还有带bool型参数的重载。

    bool型参数为true表示深拷贝,为false时表示浅拷贝。

    示例:

    var obj={name:“vanida”,age:25,address{provice:”河南”,city:”郑州”}};

    var obj1={sex:”girl”,address{city:” 上海”}};

    var result=$.extend(true,obj,obj1);

    var result1=$.extend(false,obj,obj1);

    结果:

    result={name:“vanida”,age:25,sex:”gril”,address:{provice:”河南”,city:”上海”}};

    result1={name:“vanida”,age:25,sex:”gril”,address:{ city:”上海”}};

    说明:

    当参数为ture时,即为深拷贝,obj的子项有与obj1中的子项相同属性的值不一样时,obj中子项的值会将obj1子项中的值给覆盖,当子项obj的属性跟obj1中的属性不同时,会与obj进行合并。

    当参数为false时,子项obj中的子项中与obj1中的子项属性相同时,obj1中子项的属性值会将obj中的值给完全覆盖。

    1.4 $.extend(item)

    该方法是将item合并到Jquery的全局对象中去,相当于为Jquery全局对象添加了一个

    静态方法(对应这里的静态方法,当然还有实例方法,在后边有介绍)。

    示例:

    $.extend({SayHello:function(value){alert(“hello “+value);}});

    这样写过之后,就可以直接调用SayHello方法:

    $.SayHello(“Olive”);

    说明:该方法相当于为Jquery类添加了新的方法。

    1.5 $.fn.extend(item)

    上边提到的$.extend(item)说是为Jquery类添加了静态方法,那么这里的$.fn.extend(item)就是为每一个实例添加一个实例方法了。

    示例:

    $.fn.extend({sayName:function(name){alert(“hello “+name);}});

    这样写过之后,在获取每一个示例之后,都可以调用该方法:

    $(“#id”).sayName(“lucas”);

    1.6 $.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。

    如扩展$.fn.hello(),即$.fn.hello()是对jquery扩展了一个hello方法,那么后面你的每一个jquery实例都可以引用这个方法了.

    那么你可以这样子:$("#dom").hello();

    源码:

    jQuery.fn = jQuery.prototype ={

       init: function( selector, context ){//.... 

       //......

    };

  • 相关阅读:
    initctl 创建自己的JOB
    TortoiseXX 与TotalCommander (TC)的图标问题
    eclipse 与 tomcat 的那些路径
    把函数视为对象
    序列增量赋值的一个谜题: +=
    __new__ 和 __init__ 的区别
    Python 中 is 与 == 区别
    Flask 2.0.1 changes
    flask run 与 DispatcherMiddleware 不兼容处理
    waitress 部署 flask服务
  • 原文地址:https://www.cnblogs.com/xiaojingyuan/p/5755825.html
Copyright © 2020-2023  润新知