zoukankan      html  css  js  c++  java
  • jQuery.extend 函数详解

    jQuery.extend 函数详解

    JQuery的extend扩展方法:
          Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解。
          一、Jquery的扩展方法原型是:   

    复制代码
     extend(dest,src1,src2,src3...);
    复制代码


          它的含义是将src1,src2,src3...合并到dest中,返回值为合并后的dest,由此可以看出该方法合并后,是修改了dest的结构的。如果想要得到合并的结果却又不想修改dest的结构,可以如下使用:

    复制代码
      var newSrc=$.extend({},src1,src2,src3...)//也就是将"{}"作为dest参数。
    复制代码


          这样就可以将src1,src2,src3...进行合并,然后将合并结果返回给newSrc了。如下例:

    复制代码
    var result=$.extend({},{name:"Tom",age:21},{name:"Jerry",sex:"Boy"})
    复制代码

          那么合并后的结果

    复制代码
      result={name:"Jerry",age:21,sex:"Boy"}
    复制代码


          也就是说后面的参数如果和前面的参数存在相同的名称,那么后面的会覆盖前面的参数值。

          二、省略dest参数
          上述的extend方法原型中的dest参数是可以省略的,如果省略了,则该方法就只能有一个src参数,而且是将该src合并到调用extend方法的对象中去,如:
       1、$.extend(src)
       该方法就是将src合并到jquery的全局对象中去,如:

    复制代码
     $.extend({
    hello:function(){alert(
    'hello');}
    });
    复制代码


       就是将hello方法合并到jquery的全局对象中。
       2、$.fn.extend(src)
       该方法将src合并到jquery的实例对象中去,如:

    复制代码
     $.fn.extend({
    hello:function(){alert(
    'hello');}
    });
    复制代码

       就是将hello方法合并到jquery的实例对象中。

       下面例举几个常用的扩展实例:

    复制代码
    $.extend({net:{}});
    复制代码

       这是在jquery全局对象中扩展一个net命名空间。

    复制代码
      $.extend($.net,{
    hello:function(){alert(
    'hello');}
    })
    复制代码


        这是将hello方法扩展到之前扩展的Jquery的net命名空间中去。

       三、Jquery的extend方法还有一个重载原型:  

    复制代码
    extend(boolean,dest,src1,src2,src3...)
    复制代码


          第一个参数boolean代表是否进行深度拷贝,其余参数和前面介绍的一致,什么叫深层拷贝,我们看一个例子:

    复制代码
    var result=$.extend( true,  {},  
    { name:
    "John", location: {city: "Boston",county:"USA"} },
    { last:
    "Resig", location: {state: "MA",county:"China"} } );
    复制代码


          我们可以看出src1中嵌套子对象location:{city:"Boston"},src2中也嵌套子对象location:{state:"MA"},第一个深度拷贝参数为true,那么合并后的结果就是: 

    复制代码
    result={name:"John",last:"Resig",
    location:{city:
    "Boston",state:"MA",county:"China"}}
    复制代码

           也就是说它会将src中的嵌套子对象也进行合并,而如果第一个参数boolean为false,我们看看合并的结果是什么,如下:

    复制代码
    var result=$.extend( false, {},  
    { name:
    "John", location:{city: "Boston",county:"USA"} },
    { last:
    "Resig", location: {state: "MA",county:"China"} }
    );
    复制代码


         那么合并后的结果就是:

    复制代码
      result={name:"John",last:"Resig",location:{state:"MA",county:"China"}}
    复制代码

      以上就是$.extend()在项目中经常会使用到的一些细节。

     
     
    JQuery
     
    jquery设置元素的readonly和disabled
    摘要: Jquery的api中提供了对元素应用disabled和readonly属性的方法...阅读全文
    posted @ 2010-08-03 16:33 RascallySnake 阅读(33439) | 评论 (1) 编辑
     
    javascript字符串连接类
    摘要: 在我们写前端的js时,经常会出现将很多的字符串通过“+”拼接起来,然后挂载的某个DOM元素上。然而关于使用“+”来拼接字符串,在各浏览器下解析的效果,我就在此不做对比了,网上这类的对比很多。很多牛人都说通过使用js中的Array的join方法来拼接字符串效果很不错。为此在项目中写一个js类,用来统一处理字符串的拼接。阅读全文
    posted @ 2010-07-07 15:27 RascallySnake 阅读(1155) | 评论 (0) 编辑
     
    jQuery.extend 函数详解
    摘要: Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解。 阅读全文
    posted @ 2010-05-07 11:45 RascallySnake 阅读(62439) | 评论 (33) 编辑
     
    Jquery的$命名冲突:
    摘要: 在Jquery中,$是JQuery的别名,所有使用$的地方也都可以使用JQuery来替换,如$('#msg')等同于JQuery('#msg')的写法。然而,当我们引入多个js库后,在另外一个js库中也定义了$符号的话,那么我们在使用$符号时就发生了冲突。下面以引入两个库文件jquery.js和prototype.js为例来进行说明。阅读全文
    posted @ 2010-05-07 09:37 RascallySnake 阅读(17815) | 评论 (5) 编辑
     
    Jquery调用Webservice传递Json数组
    摘要: Jquery由于提供的$.ajax强大方法,使得其调用webservice实现异步变得简单起来,可以在页面上传递Json字符串到Webservice中,Webservice方法进行业务处理后,返回Json对象给页面,让页面去展现。但如何去传递Json数组...阅读全文
    posted @ 2010-04-08 16:52 RascallySnake 阅读(1665) | 评论 (3) 编辑
     
    测试下用Zoundry Raven发布blog
    摘要: 刚装完Zoundry Raven到U盘上,试试用这款软件发布blog效果如何。下面抓幅图 看看能否发布上去。阅读全文
    posted @ 2010-03-30 14:44 RascallySnake 阅读(120) | 评论 (0) 编辑
    分类: JQuery
  • 相关阅读:
    C#磁吸屏幕窗体类库
    准备
    我写的诗
    How to turn off a laptop keyboard
    How to tell which commit a tag points to in Git?
    Why should I care about lightweight vs. annotated tags?
    How to get rid of “would clobber existing tag”
    Facebook, Google and Twitter threaten to leave Hong Kong over privacy law changes
    The need for legislative reform on secrecy orders
    Can a foreign key be NULL and/or duplicate?
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3274704.html
Copyright © 2011-2022 走看看