jQuery.extend 函數的詳細用法

來源:互聯網
上載者:User

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/)
代碼如下:
複製代碼 代碼如下:
<!DOCTYPE html>
<html>
<head>
<scriptsrc="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<divid="log"></div>
<script>
var defaults ={validate:false,limit:5,name:"foo"};
var options ={validate:true,name:"bar"};
/* merge defaults and options, without modifying defaults */
var settings =$.extend({},defaults,options); // 在外掛程式開發中經常會用到
varprintObj =typeofJSON !="undefined"?JSON.stringify :function(obj){
vararr =[];
$.each(obj,function(key,val){
varnext =key +": ";
next +=$.isPlainObject(val)?printObj(val):val;
arr.push(next );
});
return"{ "+ arr.join(", ")+" }";
};

$("#log").append("<div><b>defaults -- </b>"+printObj(defaults)+"</div>");
$("#log").append("<div><b>options -- </b>"+printObj(options)+"</div>");
$("#log").append("<div><b>settings -- </b>"+printObj(settings)+"</div>");
</script>
</body>
</html>

輸出結果為:
defaults -- {"validate":false,"limit":5,"name":"foo"} //這裡是原樣輸出defaults
options -- {"validate":true,"name":"bar"} //這裡是原樣輸出options
settings -- {"validate":true,"limit":5,"name":"bar"} //合并defaults和options , 後面的參數如果和前面的參數存在相同的名稱,那麼後面的會覆蓋前面的參數值。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.