`
edison87915
  • 浏览: 196543 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JQUERY_继承_extend(转)

 
阅读更多
[转自:http://????]
jQuery中的extend方法通过不同的参数实现了几种不同的继承方法:

1. extend(src), 扩展jQuery静态方法.

也就是说,将src对象的属性和方法逐一复制给jQuery

$.extend({  
  test:function(){alert('test函数')}  
}) 
2. extend(dest,src1,src2,src3...srcN) ,合并多个对象.

为jQuery.extend(css1,css2)为例,css1,css2各有一些属性(方法照样会如此处理,这里只讲属性).
extend函数会把css2有而css2没有的属性加到css1中,如果css2的某个属性与css1的某个属性名称享用,就会用css2的属性去覆盖css1的同名属性。css1就是最后的整和对象。或者也可以用 :

var newcss = jquery.extend(css1,css2)  newcss就是合并的新对象。

var newcss = jquery.extend({},css1,css2) newcss就是合并的新对象.而且没有破坏css1的结构。

//用法: jQuery.extend(obj1,obj2,obj3,..)  
ar Css1={size: "10px",style: "oblique"}  
var Css2={size: "12px",style: "oblique",weight: "bolder"}  
$.jQuery.extend(Css1,Css2)  
//结果:Css1的size属性被覆盖,而且继承了Css2的weight属性  
// Css1 = {size: "12px",style: "oblique",weight: "bolder"}7
3.extend(boolean,dest,src1,src2...),深度镶套对象

新的extend()允许你更深度的合并镶套对象。下面的例子是一个很好的证明。

// 以前的 .extend()     
   jQuery.extend(     
    { name: “John”, location: { city: “Boston” } },    
    { last: “Resig”, location: { state: “MA” } }     
   );     
  // 结果:    
  // => { name: “John”, last: “Resig”, location: { state: “MA” } }  
  // 新的更深入的 .extend()     
  jQuery.extend( true,     
     { name: “John”, location: { city: “Boston” } },    
     { last: “Resig”, location: { state: “MA” } }    
);     
  // 结果     
  // => { name: “John”, last: “Resig”,     
  //      location: { city: “Boston”, state: “MA” } }  1617 

与其他的类库不同的是,jQuery的extend方法提供了“深层拷贝”的功能,如果你传入的第一个参数为boolean型变量,则该变量为深层拷贝的标志,第二个参数为extend方法的目标对象,其余参数为需要进行继承的“父类”。如果第一个参数的值为true(深层拷贝),并且dest和src元素都包括相同名称的对象属性,则对该对象属性的方法和属性再进行一次复制。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics