jQuery.extend:
1、對象合并:將后面所有對象的值,覆蓋在第一個對象上。(不適用于數(shù)組)
var aa={"name":"zs","age":18};
var bb = {"name":"cs"};
var cc = {"name":"fx"};
console.log(jQuery.extend(aa,bb,cc));//{name: "fx", age: 18}
console.log(aa,bb,cc);//bb,cc的值不變。aa和jQuery.extend的值是一樣的
2、深度拷貝:
若第一個參數(shù)為true,則會將后面的參數(shù)全部拷貝至第二個參數(shù)。否則像下例的location會被覆蓋,而深度拷貝對于相同名稱的屬性,會值覆蓋屬性對象中相同的參數(shù),其他屬性保持。
var result=$.extend( true,{},
{ name: "John", location: {city: "Boston",county:"USA"} },
{ last: "Resig", location: {state: "MA",county:"China"} }
);
console.log(result);
3、方法擴展:(原理同1)
jQuery.extend(jQuery.expr[':'], {
'x': function (e) {
return e.type === 'text';
},
'y': function (e) {
return e.type === 'button';
}
});
jQuery.fn.extend:
jQuery.fn是所有jQuery對象的原型對象。給其添加函數(shù),相當于給所有jQuery對象添加方法。
jQuery.fn.extend({
'vvv':function () {
console.log($(this).val());
},
'xxx':function () {
console.log($(this).attr("class"));
}
});
//使用
$(".x04").vvv();