组合继承的问题
来源:3-2 ES5中的类与继承
慕丝7210068
2020-06-07
这里组合继承没有听明白:
function Animal(name) {
this.name = name
}
Animal.prototype.showName = function () {
console.log('my name is :' + this.name);
}
function Dog(name){
Animal.call(this,name)
}
Dog.prototype = Animal.prototype // 这里与老师的new Animal的差异在哪里
Dog.prototype.constructor = Dog
const dog1 = new Dog('wangcai')
console.log(dog1);
这里与老师的new Animal的差异在哪里
写回答
3回答
-
谢成
2020-06-07
Dog.prototype = Animal.prototype
上面这个写法应该不是我讲的吧。。。
如果这样写的话,相当于Dog.prototype 和 Animal.prototype指向同一块内存空间,这样就意味着改变其中一个就会影响到另一个。
比如试试给Dog的prototype增加一个新的方法,结果Animal上也会有这个方法。正常情况下,子类增加的方法是不应该影响到父类的。
30 -
qq_慕无忌1594956
2021-10-15
Dog.prototype = Animal.prototype是将Animal的原型对象赋值给了Dog的原型对象,而不是继承来着Animal的原型对象。
00 -
慕村7130881
2020-07-09
老师,new一个对象的方法不太懂
012021-10-15
相似问题