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

               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()


萧十郎
浏览 879回答 3
3回答

郎朗坤

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

Helenr

没区别。是不同的构造对象的方式罢了。你得注意 dog.__proto__.construtor,你覆盖了原型,却没有更改相应的 constructor。这个是很大的问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript