代码改变世界

jQuery中的$.extend方法总结

2014-09-16 19:24  盛世游侠  阅读(321)  评论(0编辑  收藏  举报


原文见:jQuery.extend()函数详解

      Jquery的扩展方法extend是我们在写插件的过程中常用的方法,但是经常容易搞不清楚以下两个写法的关系:

  1、$.extend(dest,src1,src2,src3...); 

    将src1、src2、src3...合并到dest中,dest,src可以是数组、对象、函数;如果省略dest参数,则$.extend(src)只能有一个参数:src,此时它的作用是把src合并到调用它的对象中,也就是合并到jquery“类”中。当然,如果你希望将src1,src2、src3都合并到jquery“类”中,你可以这样写:$ = .extend(this,src1,src2,src3);

  

$(function(){
    $ = $.extend(this,{
          hello:function(){alert('hello');}
  });    
    $.hello();
});

 

 

      2、$.fn.extend(src);

    这个跟写法1省略了dest的写法是一样的作用,但是因为它的调用对象是$.fn了,所以它的作用是把src合并到jQuery实例中。

 

  3、$.extend()和.fn.extend()的不同;

     这个跟写法1省略了dest的写法是一样的作用,但是因为它的调用对象是$.fn了,所以它的作用是把src合并到jQuery实例中。

      4、$.extend(boolean,dest,src1,src2,src3...);

    第一个参数boolean代表是否进行深度拷贝,其余参数和前面介绍的一致;

    所谓深度合并就是指src1,src2,src3等数组或对象不但父级合并,而且各个子级也合并,如遇同名项,那么后面参数的项覆盖前面参数的项,详细解释请参见jQuery.extend()函数详解