jQuery.extend:
1、对象合并:将后面所有对象的值,覆盖在第一个对象上。(不适用于数组)
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、深度拷贝:
若第一个参数为true,则会将后面的参数全部拷贝至第二个参数。否则像下例的location会被覆盖,而深度拷贝对于相同名称的属性,会值覆盖属性对象中相同的参数,其他属性保持。
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对象的原型对象。给其添加函数,相当于给所有jQuery对象添加方法。
jQuery.fn.extend({
'vvv':function () {
console.log($(this).val());
},
'xxx':function () {
console.log($(this).attr("class"));
}
});
//使用
$(".x04").vvv();