13.JavaScript-繼承方式三

上一篇12.繼承方式二有這么一句話

還是有弊端:假如Person.prototype添加了新的方法,Student實(shí)例想用怎么辦?沒法呀

  • 主要通過下面兩句話解決弊端(前提用了call,看上一篇繼承方式二):
Student.prototype = Person.prototype;
Student.prototype.constructor = Student;
function Person(myName, myAge) {
            this.name = myName; // stu.name = myName;
            this.age = myAge; // stu.age = myAge;

            // return this;
        }
        Person.prototype.say = function () {
            console.log(this.name, this.age);
        }
        function Student(myName, myAge, myScore) {
            Person.call(this, myName, myAge);
            this.score = myScore;
            this.study = function () {
                console.log("day day up");
            }
        }
        // 注意點(diǎn): 要想使用Person原型對(duì)象中的屬性和方法, 
        //那么就必須將Student的原型對(duì)象改為Person的原型對(duì)象才可以
        Student.prototype = Person.prototype;
        Student.prototype.constructor = Student;

        let stu = new Student("ww", 19, 99);
        console.log(stu.score);
        stu.say();
        stu.study();

這種方式還是有弊端的,問題出現(xiàn)在解決問題的語句上

Student.prototype = Person.prototype;
Student.prototype.constructor = Student;

有什么弊端?設(shè)Person.prototype為A,即Student.prototype 也為A,就是說Person原型對(duì)象和Student原型對(duì)象是同一個(gè),同一個(gè)地址,而對(duì)象是引用類型,那么對(duì)Student.prototype設(shè)置constructor 為Student,即Person.prototype.constructor也為Student~!

解決方法看下一篇

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、構(gòu)造函數(shù)模式 [url=]file:///C:/Users/i037145/AppData/Local/Tem...
    橫沖直撞666閱讀 927評(píng)論 0 0
  • 將Student構(gòu)造函數(shù)的原型對(duì)象改為Person構(gòu)造函數(shù)的原型對(duì)象注意點(diǎn): 要想使用Person原型對(duì)象中的屬性...
    仰望_IT閱讀 262評(píng)論 0 1
  • avaScript對(duì)每個(gè)創(chuàng)建的對(duì)象都會(huì)設(shè)置一個(gè)原型,指向它的原型對(duì)象。 當(dāng)我們用obj.xxx訪問一個(gè)對(duì)象的屬性時(shí)...
    源大俠閱讀 328評(píng)論 0 1
  • 上班。hello單車。 上午找W-06-00974/D41-17的蜂鳴器。沒有。 接到天津來的輸入軸。62元。 接...
    hailei閱讀 148評(píng)論 0 0
  • 有人說“和朋友最舒服的相處模式,不是無話不說,而是可以不說話。”現(xiàn)在的我才懂得了這個(gè)道理,可初中的我并不懂,那時(shí)候...
    小菜喲閱讀 639評(píng)論 3 4

友情鏈接更多精彩內(nèi)容