您的位置:首页 > Web前端 > JQuery

jQuery.extend()函数使用详解

2017-09-09 16:47 483 查看
定义:jQuery.extend()函数用于将一个或多个对象的内容合并到目标对象,是我们在编写插件过程中常用的方法,该方法有一些重载原型。

语法:$.extend(target , [object1] , [object2],… )它的含义是将object1,object2等合并到target中,返回值为合并的target

指示是否深度合并:$.extend( [deep] , target , [object1] , [object2],… )

上代码 ——

一:语法:$.extend(target , [object1] , [object2],... )

var config1 = {
name:"Bb",
age: 20
}
var config2 = {
name: "Yyf",
sex: "boy"
}
var result = $.extend({},config1,config2);
console.log(result);//{name: "Yyf", age: 20, sex: "boy"}
console.log(config1);//{name: "Bb", age: 20}
console.log(config2);//{name: "Yyf", sex: "boy"}


二:省略target参数:上述的target参数是可以省略的,则该方法就只能有一个object参数了,方法含义就变为:将该object合并到调用extend方法的对象中去,如:

$.extend({
hello:function(){
alert("helloWorld");
}
});
$.hello();         //调用成功->helloWorld


.extend()方法还有一个重载原型:.extend(boolean,target,object1,object2,…),含义–>第一个参数boolean代表是否深度拷贝,其余参数和前面的一致

深度拷贝:
//深度拷贝
var info1 = {
name: "Bb",
location: {
city: "nanchang",
county: "china"
}
};
var info2 = {
last: "resign",
location: {
state: "MA",
county: "USA"
}
};
console.log($.extend(true,{},info1,info2))
//{name: "Bb", location: {city:"nanchang",county:"USA",state:"MA"}, last: "resign"}
console.log($.extend(false,{},info1,info2))
//{name: "Bb", location: {county:"USA",state:"MA"}, last: "resign"}
console.log($.extend({},info1,info2))
//{name: "Bb", location: {county:"USA",state:"MA"}, last: "resign"}
//总结:深度拷贝可以将嵌套的子对象也进行合并。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: