Heim  >  Artikel  >  Web-Frontend  >  jQuery.extend 函数的详细用法_jquery

jQuery.extend 函数的详细用法_jquery

WBOY
WBOYOriginal
2016-05-16 17:52:101202Durchsuche

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"}
也就是说后面的参数如果和前面的参数存在相同的名称,那么后面的会覆盖前面的参数值。

也许你对该函数已经有一定的了解。我们再看一个jquery官方的例子(http://api.jquery.com/jQuery.extend/)
代码如下:

复制代码 代码如下:








<script> <BR>var defaults ={validate:false,limit:5,name:"foo"}; <BR>var options ={validate:true,name:"bar"}; <BR>/* merge defaults and options, without modifying defaults */ <BR>var settings =$.extend({},defaults,options); // 在插件开发中经常会用到 <BR>varprintObj =typeofJSON !="undefined"?JSON.stringify :function(obj){ <BR>vararr =[]; <BR>$.each(obj,function(key,val){ <BR>varnext =key +": "; <BR>next +=$.isPlainObject(val)?printObj(val):val; <BR>arr.push(next ); <BR>}); <BR>return"{ "+ arr.join(", ")+" }"; <BR>}; <br><br>$("#log").append("<div><b>defaults -- "+printObj(defaults)+""); <BR>$("#log").append("<div><b>options -- "+printObj(options)+""); <BR>$("#log").append("<div><b>settings -- "+printObj(settings)+""); <BR></script>



输出结果为:
defaults -- {"validate":false,"limit":5,"name":"foo"} //这里是原样输出defaults
options -- {"validate":true,"name":"bar"} //这里是原样输出options
settings -- {"validate":true,"limit":5,"name":"bar"} //合并defaults和options , 后面的参数如果和前面的参数存在相同的名称,那么后面的会覆盖前面的参数值。
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn