jQuery.extend
来源:互联网 发布:js array unique 编辑:程序博客网 时间:2024/05/15 00:43
jQuery.extend的用法 转载
有網友提問,看不太懂jQuery.extend的用法,本想在留言裡回覆,但寫著寫著,發現要說到淺顯白話,還真得花些篇幅,索性另起一篇,解釋得更詳細點。
以jQuery.extend(objA, objB)為例,你可以想像成objA與objB各有一些屬性(方法也會比照處理,在此只提屬性),extend()會將objB有而objA沒有的屬性加到objA裡,如果objB裡的某個屬性,objA裡剛好也有同名的屬性,則會用objB的屬性值去覆寫objA原有的屬性。objA最後就是整合結果,或者也可以由var objC = jQuery.extend(objA, objB)取得整合結果(objA == objC)。
例如以下的程式碼,大家可以丟到Mini jQuery Lab跑一下,馬上就可以驗證jQuery.extend的效果:
var objA = { speed:"slow" };
var objB = { speed:"fast", power:"hard" };
var objC = jQuery.extend( objA, objB );
document.write("<dt>objA");
for (var p in objA) { document.write("<dd>" + p + "->" + objA[p]); }
document.write("<dt>objC");
for (var p in objC) { document.write("<dd>" + p + "->" + objC[p]); }
所得結果objA與objC的內容相同,都有兩個屬性speed:"fast"(被覆寫), power:"hard"(新加的)。
jQuery.extend可以支援多個物件屬性/方法的整併,並不限於兩個。例如: jQuery.extend(objA, objB, objC),objB, objC多出的屬性都會加到objA裡,如果有objA已有同名屬性,則會用objC/objB裡的屬性值覆寫之,若objB, objC都用同名屬性,則會排在後方的objC為準(後令壓前令)。
jQuery.extend的最常見的用途是用來處理Plugin或函數的傳入參數,比如函數會用到的參數有10個,但大部分情況呼叫時只需要指定其中一兩個,其餘的用預設值即可。於是我們可以在函數中宣告一個預設值物件objDefault,裡面已有10個屬性,呼叫函數時則傳入objOption,裡面只放入一兩個要變更的屬性值,經過var objSetting = jQuery.extend(objDefault, objOption)之後,我們得到10個"有指定用指定值,沒指定用預設值"的屬性供後續使用。舉個例子:
function addDiv(options) {
var defaults = {
border: "solid 1px black",
backgroundColor: "#cccccc",
width: "200px", height: "50px",
margin: "10px"
};
var settings = $.extend(defaults, options);
$("<div></div>").css(settings).appendTo("body");
}
addDiv({ width: "400px" });
addDiv({ backgroundColor: "orange", height: "100px" });
希望這樣的說明夠清楚。
- jQuery.extend $.extend详解
- jQuery.extend
- jquery extend
- jQuery.extend
- jQuery.extend
- jQuery.extend
- jquery extend
- jQuery.extend
- jQuery.extend
- jQuery.extend
- jquery extend
- jquery.extend
- jQuery.extend
- jQuery.extend()
- $.extend,jQuery.extend 函数详解
- JQuery $.extend 与$.fn.extend
- [JQuery] jquery.fn.extend 与 jquery.extend
- jquery.fn jquery.extend jquery.fn.extend
- 目标检测的图像特征提取之(一)HOG特征
- git错误: The requested URL returned error: 403 Forbidden while accessing https://github.com/wangz/futu
- 交叉分析DEMO
- 算法
- SQL SERVER2 自定义函数及游标使用例子
- jQuery.extend
- 解决wordpress在IIS下伪静态后子目录无法访问的问题
- 集合工具类Collections
- dos2unix命令用来将DOS格式的文本文件
- jQueryMobile的(十九) 动画事件(animationComplete)
- zoj 1109 Language of FatMouse
- 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
- [持续更新]android stduio的一些小技巧
- iOS多线程编程之NSThread的使用