首页 > 其他 > 详细

关于对象+原型+继承(一)

时间:2015-12-04 18:19:46      阅读:335      评论:0      收藏:0      [点我收藏+]

看下面例子:

 1 var a={
 2       x:2,
 3       getNumber:function(z){
 4          return this.x+this.y+z;
 5       }                          
 6 } ;   
 7 
 8 
 9 var b={
10       y:23,
11      __proto__:a;  
12 //表示对象b继承至对象a;__proto__属性为为对象自身隐含属性     
13 } ;  
14 
15 b.getNumber(4);//输出29

如果调用ES5标准化的实现原型继承的可选方法  var b=Object.create(a);//对象b的原型对象是a(对象b的__proto__属性的原型对象是a)

如下代码:

 

 1 var a={ x:1,cal:function(z){return this.x+this.y+z;}};var b={y:3};  b=Object.create(a);b.y;
 2 //undefined b对象中的属性y被覆盖
 3 
 4 var a={ x:1,cal:function(z){return this.x+this.y+z;}};var b={y:3};  b=Object.create(a);b.x;
 5 //1
 6 
 7 var a={ x:1,cal:function(z){return this.x+this.y+z;}};var b={y:3};  b=Object.create(a);b.cal;
 8 // function a.cal(z),输出a对象的属性
 9 
10 var a={ x:1,cal:function(z){return this.x+this.y+z;}};var b={y:3};  b=Object.create(a);b;
11 //Object {}
12 
13 var a={ x:1,cal:function(z){return this.x+this.y+z;}};var b={y:3};  b=Object.create(a);b.cal(23);
14 //NaN,此时b对象中的属性y被覆盖
15 
16 
17 var a={ x:1,cal:function(z){return this.x+this.y+z;}};var b=Object.create(a);b.y=2;b.cal(23);
18 //26  手动添加对象b的属性y

 未完待续

关于对象+原型+继承(一)

原文:http://www.cnblogs.com/pm-dongjian/p/5019779.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!