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 ){//.... 

   //......

};

随机推荐

  1. python操作oracle数据库-查询

    python操作oracle数据库-查询 参照文档 http://www.oracle.com/technetwork/cn/articles/dsl/mastering-oracle-python- ...

  2. Cygwin安装配置

    1.下载安装Cygwin   我们可以到Cygwin的官方网站下载Cygwin的安装程序,地址是: http://www.cygwin.com/ 或者直接使用下载连接来下载安装程序,下载连接是: ht ...

  3. 【Canal源码分析】Canal Server的启动和停止过程

    本文主要解析下canal server的启动过程,希望能有所收获. 一.序列图 1.1 启动 1.2 停止 二.源码分析 整个server启动的过程比较复杂,看图难以理解,需要辅以文字说明. 首先程序 ...

  4. Apache版本hadoop-2.6.0.tar.gz平台下搭建Hue

    不多说,直接上干货! http://archive.apache.org/dist/ http://www.cnblogs.com/smartloli/p/4527168.html http://ww ...

  5. 关于class的签名Signature

    举例1: public class Test05<A, B extends java.util.List<String>, C extends InputStream&Ser ...

  6. 【原】中文Ubuntu主目录下的文档文件夹改回英文

    想把中文Ubuntu主目录下的文档文件夹改回英文,在Terminal下面操作的时候要输入中文特别不方便,于是便用了更改名字的想法 方法一: 首先把那几个中文名称修改成相应的英文,比如 Desktop. ...

  7. Chrome插件下载地址

    www.crx4chrome.com可以直接下载 Chrome Store 插件 在chrome web store好像只能安装插件.

  8. Date类学习总结(Calendar Date 字符串 相互转换 格式化)

    Date类学习总结 1.计算某一月份的最大天数 Calendar time=Calendar.getInstance();time.clear();time.set(Calendar.YEAR,yea ...

  9. Verdi文档路径

    1.echo $VERDI_HOME 2.cd $VERDI_HOME/doc 3.okular VerdiTut.pdf& Verdi主要在以下方面使用 Verdi使用情形:        ...

  10. 精度更高的double类型计算工具类(借助BigDecimal类型)

    /** * 提供精確的加法運算 * @param args */ public static double add(double v1, double v2) { BigDecimal b1 = ne ...