紅皮書繼承小結

組合繼承

也叫偽經(jīng)典繼承般又;指將原型鏈和構造函數(shù)技術組合一起的繼承方式

function SuperType(name){
        this.name =name;
        this.colors =["red","blud","green"];
      }
      SuperType.prototype.sayName =function(){
        alert(this.name);
      }
      function SubType(name,age){
        //繼承屬性
        SuperType.call(this,name);   //第二次調(diào)用SuperType()
        this.age =age;
      }
      //繼承方法
      SubType.prototype = new SuperType();  //第一次調(diào)用SuperType()
      SubType.prototype.construcotr = SubType;
      SubType.prototype.sayAge = function() {
        alert(this.age);
      }

      var xyy = new SubType("xyy",21);
      xyy.sayName();  //xyy
      xyy.sayAge();   //21

     var xyy2 = new SubType("xyy2",212);
      xyy.sayName();  //xyy2
      xyy.sayAge();   //212

xyy => SubType => SuperType
SuperType構造函數(shù)定義了兩個屬性:name和colors账嚎。SuperType的原型定義了一種方法sayName()刀脏。SubType構造函數(shù)在調(diào)用SuperType構造函數(shù)時傳入了name參數(shù)宛裕,也同時定義了自己的屬性age劲赠。然后將SuperType是實例賦值個SubType的原型延欠,然后又在新的原型上定義方法sayAge()欺矫。這樣就可以讓兩個不同的SubType實例分別擁有自己的屬性包括colors屬性,又可以使用相同的方法

不足:
組合繼承最大的不足是篮奄,無論什么情況下捆愁,都會調(diào)用兩次超類型構造函數(shù),一次是在創(chuàng)建子類原型時窟却,第二次是在構造函數(shù)內(nèi)部

寄生組合繼承

寄生組合繼承是借用構造函數(shù)來繼承屬性昼丑,通過原型鏈混成形式來繼承方法

//替換了第一次調(diào)用
function inheritPrototype(subType,superType){
      var prototype=Object.create(superType.prototype); //創(chuàng)建對象
      prototype.constructor=subType;   //為對象添加constructor屬性,彌補重寫原型而失去的constructor屬性
      subType.prototype=prototype; //將創(chuàng)建的對象賦值給子類的原型
        }
        function SuperType(name){
          this.name =name;
          this.colors =["red","blud","green"];
        }
        SuperType.prototype.sayName =function(){
          alert(this.name);
        }
        function SubType(name,age){
          SuperType.call(this,name);
          this.age =age;
        }
        inheritPrototype(SubType,SuperType);
        SubType.prototype.sayAge=function(){
               alert(this.age);
        };//擴展出sayAge方法

var person1=new SubType("nUll",25);
var person2=new SubType("mywei",25);
person1.colors.push("gay3");
person1.sayName();
person1.sayAge();
console.log(person1.colors);    //["red", "blud", "green", "gay3"]
console.log(person2.colors);  //["red", "blud", "green"]
console.log(person1 instanceof SubType);   //true
console.log(person1 instanceof SuperType);  //true
console.log(SubType.prototype.isPrototypeOf(person1));  //true
console.log(SuperType.prototype.isPrototypeOf(person1)); //true
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市夸赫,隨后出現(xiàn)的幾起案子菩帝,更是在濱河造成了極大的恐慌,老刑警劉巖茬腿,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件呼奢,死亡現(xiàn)場離奇詭異,居然都是意外死亡滓彰,警方通過查閱死者的電腦和手機控妻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來揭绑,“玉大人弓候,你說我怎么就攤上這事郎哭。” “怎么了菇存?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵夸研,是天一觀的道長。 經(jīng)常有香客問我依鸥,道長亥至,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任贱迟,我火速辦了婚禮姐扮,結果婚禮上,老公的妹妹穿的比我還像新娘衣吠。我一直安慰自己茶敏,他們只是感情好,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布缚俏。 她就那樣靜靜地躺著惊搏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪忧换。 梳的紋絲不亂的頭發(fā)上恬惯,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天,我揣著相機與錄音亚茬,去河邊找鬼酪耳。 笑死,一個胖子當著我的面吹牛才写,可吹牛的內(nèi)容都是我干的葡兑。 我是一名探鬼主播奖蔓,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼赞草,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了吆鹤?” 一聲冷哼從身側響起厨疙,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎疑务,沒想到半個月后沾凄,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡知允,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年撒蟀,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片温鸽。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡保屯,死狀恐怖手负,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情姑尺,我是刑警寧澤竟终,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站切蟋,受9級特大地震影響统捶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜柄粹,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一喘鸟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧驻右,春花似錦迷守、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至茵瘾,卻和暖如春礼华,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拗秘。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工圣絮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人雕旨。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓扮匠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親凡涩。 傳聞我的和親對象是個殘疾皇子棒搜,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容