注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

星期五

明天不上班

 
 
 

日志

 
 
关于我

一个特立独行的Java程序员,比较宅,上上网,写博客,听音乐,看电影。

网易考拉推荐

YAHOO.lang.augment方法的使用  

2011-02-19 14:00:30|  分类: Yui |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
YAHOO.lang.augment
static void augment ( r , s , arguments )
Same as YAHOO.lang.augmentObject, except it only applies prototype properties. This is an alias for augmentProto.

Parameters:

r <Function> the object to receive the augmentation

s <Function> the object that supplies the properties to augment

arguments <String*|boolean> zero or more properties methods to augment the receiver with. If none specified, everythingin the supplier will be used unless it wouldoverwrite an existing property in the receiver. if trueis specified as the third parameter, all properties willbe applied and will overwrite an existing property inthe receiver

 

测试函数

(function() {

function Receive(){

var attr4 = "attr4";

var method4 = function(){};

this.attr5 = "attr5";

this.method5 = function(){};

}

 

Receive.prototype = {

attr6:"attr6",

method6:function(){}

}

 

function Supplies(){

var attr1 = "attr1";

var method1 = function(){};

        this.attr2 = "attr2";

        this.method2 = function(){};

}

 

Supplies.prototype = {

attr3:"attr3",

method3:function(){},

attr6:"ow"

}

 

   YAHOO.lang.augment(Receive,Supplies);

    var r = new Receive();

r.attr2;

})();

 

1.先测试第一种情况  YAHOO.lang.augment(Receive,Supplies);

FireBug 截图

  YAHOO.lang.augment方法的使用 - zhenghaoju700 - zhenghaoju700 的博客?

Receive 只得到了Supplies的prototype的属性和方法,相同属性名没有发生覆盖(attr6)


2.测试第二种情况  YAHOO.lang.augment(Receive,Supplies,true);

FireBug 截图

  YAHOO.lang.augment方法的使用 - zhenghaoju700 - zhenghaoju700 的博客?

Receive 得到了Supplies的prototype的属性和方法,相同属性名发生了覆盖(attr6)


3.测试第二种情况  YAHOO.lang.augment(Receive,Supplies,"newAttr1","newAttr2");

FireBug 截图

  YAHOO.lang.augment方法的使用 - zhenghaoju700 - zhenghaoju700 的博客


Receive 没有得到Supplies的prototype的属性和方法,却得到了newAttr1 和 newAttr2。

(这个设计,我感觉很奇怪)


merge

merge ( arguments )  

Returns a new object containing all of the properties of all the supplied objects. 

The properties from later objects will overwrite those in earlier objects.

Parameters:arguments <Object*the objects to merge

Returns:the new merged object


测试函数

var obj1 = {attr1:"attr1",attr2:"attr2"};

var obj2 = {attr1:"OW",attr3:"attr3"};

var obj3 = {attr4:"attr4",attr5:"attr5"};    

var obj = YAHOO.lang.merge(obj1,obj2,obj3);

obj.attr4; 

 

FireBug 截图

  YAHOO.lang.augment方法的使用 - zhenghaoju700 - zhenghaoju700 的博客?

 

YAHOO.lang.augment 和YAHOO.lang.merge 在写类和JS插件非常重要啊

 

  评论这张
 
阅读(197)| 评论(0)
推荐

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017