jquery的extend方法的用法
1. [代码][JavaScript]代码
01
02"">
03
04
05
06 jquery继承
07
08
09 对象继承{name:"ws",age:"23"}<={name:"king",sex:"man"}
10
11
12
13
全局方法继承$.hello()
14
15
16
类插件方法触发
17
name:
18
age:
19
20
21
22 深度拷贝{name:"ws",location:{city:"ningbo",code:"315000",locOther="other"},other:"第一岑对象中的参数"}<={name:"king",location:{city:"shaoxin",code:"311824"}}
23
24
25
26
27
28
29
30
99
2. [代码]说明
view sourceprint?
01Jquery的扩展方法extend是我们在写插件的过程中常用的方法
02
03模型:extend(dest,src1,src2,src3...); 解释:将src1,src2,src3...合并到dest中,返回值为合并后的dest
04
051. 全局方法
06为扩展jQuery类本身.为类添加新的方法
07以理解为添加静态方法
08$.extend({
09 hello:function(){alert('hello');}
10});
11如何调用:$.hello(), 它将覆盖其他子的hello()方法
12
132.jquery的实例对象方法
14(给jQuery对象添加方法)如:点击任何Dom对象弹出它的value
15$.fn.extend({fnmethod:function(){
16 $(this).click(function(){
17 alert($(this).val());
18 })
19}});
20
213.关于深度拷贝
22深度拷贝
23var result=$.extend( true, {}, {name:"ws",other:{x:xvalue,y:yvalue}},{name:"ws",other:{x:xx}}}
24=> {name:"ws",other:{x:xx,y:yvalue}}
25
26非深度拷贝
27var result=$.extend( false, {}, {name:"ws",other:{x:xvalue,y:yvalue}},{name:"ws",other:{x:xx}}}
28=> {name:"ws",other:{x:xx}}
29区别就是深度拷贝会把对象中的对象的所有属性都拷贝过来 ,而非深度拷贝则不会
30个人理解:可以吧对象理解为一个json对象,jquery的extend会继承所有对象中的顶层属性,而如果需要再继承对象属性中的属性,那么需要用到深度继承
31jquery默认的拷贝方式是非深度拷贝
阅读(302) | 评论(0) | 转发(0) |