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();
Helenr
TA贡献1780条经验 获得超4个赞
没区别。是不同的构造对象的方式罢了。
你得注意 dog.__proto__.construtor
,你覆盖了原型,却没有更改相应的 constructor。这个是很大的问题。
添加回答
举报
0/150
提交
取消