javascript关于继承和原型的问题,麻烦哪位大神能解答一下

cyycl 2014-06-26 03:25:46
//创建了Parent类
var Parent = function(){};
//创建了Child类
var Child = function(){};

//定义了Child类的原型对象Child Prototype 的一个属性age
Child.prototype.age = 0;

//Child类继承了Parent类(包括Parent类的构造函数中的实例属性和实例方法,以及原型对象中的原型属性和方法)
Child.prototype = new Parent();

//创建一个Child类的实例对象child
var child = new Child();

console.log(child.age); //返回的是undefined
]console.log(Child.prototype.age); //返回的也是undefined

上面的程序说明了:子类(Child类)的原型对象无法定义原型属性;

我的问题是:(1)为什么子类的原型对象不能定义原型属性??
(2)如果是的话,那么有什么方法能创建一些属性和方法,仅能让子类创建的对象共享??


我刚刚接触js,完全是一个菜鸟。拜托各位大神了~~小弟先谢谢了
...全文
229 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyycl 2014-06-26
  • 打赏
  • 举报
回复
谢谢楼上的几位指导~~Child.prototype = new Parent(),已经将Parent类的原型对象赋给了Child类的原型对象,把原来Child类的原型对象中定义的原型属性覆盖了,又因为Parent类的原型对象没有对age这个原型属性的定义,所以才会输出undefined。不知道我的理解正不正确??
KK3K2005 2014-06-26
  • 打赏
  • 举报
回复
//定义了Child类的原型对象Child Prototype 的一个属性age Child.prototype.age = 0; //Child类继承了Parent类(包括Parent类的构造函数中的实例属性和实例方法,以及原型对象中的原型属性和方法) Child.prototype = new Parent(); Child.prototype 现在是什么呢?
天际的海浪 2014-06-26
  • 打赏
  • 举报
回复
Child.prototype = new Parent(); //先设置继承 Child.prototype.age = 0; //再定义Child类的原型对象的属性age
xiongsisixsxs 2014-06-26
  • 打赏
  • 举报
回复
Child.prototype.age = 0; Child.prototype = new Parent(); 这两句反过来就好了,因为后面那句直接把已经写好的原型覆盖了

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧