文章导航

jQuery.extend()

2018-2-2 18:11| 作者: admin| 查看: 1229| 评论: 0|来自: 蚂蚁部落

此方法可以用一个或者多个对象来扩展指定的对象,并返回扩展后的对象。

语法结构一:

[JavaScript] 纯文本查看 复制代码
jQuery.extend(target [, object1 ] [, objectN ])

参数解析:

(1).target:一个对象,目标对象,object1-objectN对象的属性或者方法将会被附加到它身上,如果target是唯一的参数,那么它将被附加到jQuery对象(类)。

(2).object1-objectN:可选,它们的属性或者方法将会被附加到target对象身上。

jQuery1.0版本添加。

语法结构二:

[JavaScript] 纯文本查看 复制代码
jQuery.extend([deep ], target, object1 [, objectN ])

参数解析:

(1).deep:可选,布尔值,用来指示是否进行深度拷贝;true为深度拷贝,false为浅拷贝,默认false。特别说明:默认是false,但是我们不能显示规定参数是false,不会进行合并操作。

(2).target:一个对象,目标对象,object1-objectN对象的属性或者方法将会被附加到它身上,如果target是唯一的参数,那么它将被附加到jQuery对象(类)。

(3).object1-objectN:可选,它们的属性或者方法将会被附加到target对象身上。

jQuery1.1.4版本添加。

代码实例:

[JavaScript] 纯文本查看 复制代码运行代码
var antzone={
  webName:"蚂蚁部落",
  age:3
}
var oneObj={
  address:"青岛市南区",
  source:"javascript教程"
}
var twoObj={
  target:"互助学习",
  enName:"antzone"
}
jQuery.extend(antzone,oneObj,twoObj)
console.log(antzone)

以上代码可以将对象oneObj和twoObj扩展至对象antzone,也就是说原对象antzone已经被修改。

结果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201702/19/183228wak46q5m62424apo.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

如果仅仅是单纯合并object1至objectN对象,可以将target设置为一个空对象,代码如下:

[JavaScript] 纯文本查看 复制代码运行代码
var oneObj={
  address:"青岛市南区",
  source:"javascript教程"
}
var twoObj={
  target:"互助学习",
  enName:"antzone"
}
jQuery.extend({},oneObj,twoObj)
console.log(jQuery.extend({},oneObj,twoObj))

合并后的结果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201702/19/183412kljj2rj82ywf8wzr.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

如果方法只有一个参数,也就是说只有target参数,那么就是将其扩展至jQuery对象,代码如下:

[JavaScript] 纯文本查看 复制代码运行代码
jQuery.extend({func:function(){
  console.log("蚂蚁部落");
}})
jQuery.func()

也就是为jQuery添加了一个静态方法。

深度拷贝:

下面就介绍一下此方法的第一个参数deep,它是一个布尔值,如果为true表示进行深度拷贝。

先看一段代码实例:

[JavaScript] 纯文本查看 复制代码运行代码
var antzone={
  webName:"蚂蚁部落",
  age:3,
  innerObj:{
    done:"奋斗"
  }
}
var Obj={
  address:"青岛市南区",
  innerObj:{
    target:"互助学习",
    enName:"antzone"
  }
}
jQuery.extend(antzone,Obj)
console.log(antzone)

两个对象内部都有嵌套的对象innerObj,但是合并结果是第二个覆盖了第一个对象,截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201702/19/183548zu36dbq3dbbugug8.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

代码如下改成深度拷贝以后运行结果如下:

a:3:{s:3:\"pic\";s:43:\"portal/201702/19/183614urts2ni2m28t2nqh.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

从以上代码可以看出,内部嵌套的对象也进行了合并。当然内部嵌套的对象必须是同名的。


鲜花

握手

雷人

路过

鸡蛋
上一篇:jQuery.fn.extend()下一篇:jQuery.contains()

最新评论

返回顶部