首頁  >  文章  >  web前端  >  jQuery.extend 函數的詳細用法_jquery

jQuery.extend 函數的詳細用法_jquery

WBOY
WBOY原創
2016-05-16 17:52:101257瀏覽

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 -- < /b>" 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 , 後面的參數如果和前面的參數存在相同的名稱,那麼後面的會覆蓋前面的參數值。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn