jQuery中extend有三种用法bash
用法一:给jQuery类添加方法this
$.extend({
show:function(){
console.log('I will show this string')
}
})
$.show() // I will show this string复制代码
用法二:给Jquery的原型添加方法,调用添加的方法时须要获取Jquery实例spa
<div class="test"></div>
$.fn.extend({
show:function(){
console.log('I will show this string')
}
})
$('.test').show() // I will show this string复制代码
用法三:继承、浅拷贝和深拷贝code
1.浅拷贝对象
var a = {}
var b = {'name':'zhangsan'}
$.extend(a,b)
console.log(a.name) // zhangsan复制代码
若是b这个对象中嵌套对象,那么改变a后,b会跟着改变继承
var a = {}
var b = {'people': {'name': 'lisi'}}
$.extend(a,b)
a.people.name = 'wangwu'
console.log(b.people.name) // wangwu复制代码
此时,b中的name改变了,碰到这种状况,咱们须要进行深拷贝原型
2.深拷贝string
var a = {}
var b = {'people': {'name': 'lisi'}}
$.extend(true,a,b)
a.people.name = 'wangwu'
console.log(b.people.name) // lisi复制代码
3.继承,不管后面跟多少个对象,都将成为第一个对象的属性it
var a = {'sex': '1'}
$.extend(a,{'name':'zhangsan'},{'people':{'name':'lisi'}})
console.log(a) // {sex: "1", name: "zhangsan", people: {'name':'lisi'}}复制代码