原型继承问题
这个例子有点疑问,eat方法并不在Animal.prototype上,为什么能被继承到呢?
function Animal(){
this.eat=function(){
console.log('eat');
}
}
function Dog(){
this.bark=function(){console.log('bark');
}
}
Dog.prototype=new Animal();
var d=new Dog();
d.eat()
25
收起
正在回答 回答被采纳积分+1
3回答
Edward666
2020-03-30 18:47:53
ES5实现类的继承建议你不要学老师的那种继承方式,有很多缺点的。我给看一个最佳的继承实现方式
// 最好的方法,最理想的方法 寄生组合式继承// 解决了两次调用父类构造函数问题function Person_1(name, age) { this.name = name; this.age = age; this.action = ['speak', 'run', 'eat']; console.log('我被调用了');}Person_1.prototype.say = function () { console.log(`my name is ${this.name} and I am ${this.age} years old!`);};function Student_1(name, age, score) { Person_1.call(this, name, age); // 借用构造函数, 第一次调用父类构造函数 this.score = score;}Student_1.prototype = Object.create(Person_1.prototype);Student_1.prototype.constructor = Student_1;Student_1.prototype.showScore = function () { console.log(`my score is ${this.score}`);};
4.Vue与React高级框架开发
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星