为了账号安全,请及时绑定邮箱和手机立即绑定

js原型式继承的一个问题?

js原型式继承的一个问题?

萧十郎 2018-07-30 10:22:14
               function Animate() {             this.age = 12         }         Animate.prototype = {             say() {                 console.log(this.age)             }         }         new Animate().say()         function Dog() {}         Dog.prototype = Animate.prototype// 请问这个也可以用Object.create(Animate.prototype),那么用和不用有什么区别吗,求解         let dog = new Dog()         dog.say()
查看完整描述

3 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

1.首先Animate.prototype 代表Animate的原型 而Object.create(Animate.prototype) 创建Animate的原型的子类对象 this.age是在Animate本身对象中,而非在原型中,所以 Dog.prototype = Animate.prototype要改成Dog.prototype = new Animate();


查看完整回答
反对 回复 2018-07-30
?
Helenr

TA贡献1780条经验 获得超4个赞

没区别。是不同的构造对象的方式罢了。
你得注意 dog.__proto__.construtor,你覆盖了原型,却没有更改相应的 constructor。这个是很大的问题。

查看完整回答
反对 回复 2018-07-30
  • 3 回答
  • 0 关注
  • 876 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信