javascript 繼承

一排截、原型鏈繼承

概念:通過改造原型鏈實現繼承娱节,利用原型鏈的特征實現繼承

那么為啥要有繼承挠蛉?
繼承的作用:繼承:可以讓多個構造函數之間建立關聯,便于管理和復用
代碼層面上的繼承:繼承一些屬性和方法

原型鏈繼承

二肄满、繼承-寄生組合繼承

student實例上有name age 谴古,而原型proto上不需要再有這些屬性,所以利用Object.create改裝下
Object.create(參數對象)
1稠歉、Object.create會創(chuàng)建一個新對象
2掰担、并且這個新對象的proto會指向傳入的參數對象

寄生組合繼承

三刃泡、繼承 - 組合繼承

組合繼承:

概念:組合繼承有時候也叫偽經典繼承预厌,指的是將原型鏈借用構造函數 call 技術組合到一塊,

從而發(fā)揮二者之長的一種繼承模式劫拗,其背后的思路: 是使用原型鏈實現對原型屬性和方法的繼承 (主要是方法)阅羹,

而通過借用構造函數來實現對實例屬性構造的繼承勺疼。這樣既通過在原型上定義方法實現了函數復用,又能保證每個實例都有它的自己的屬性捏鱼。

// 1. 定義Person構造函數
function Person (name, age) {
  this.name = name
  this.age = age
}
Person.prototype.say = function () {
  console.log('人類會說話')
}

// 2. 定義Student構造函數
function Student (name, age, className) {
// call
// 1\調用函數
// 2\改變函數執(zhí)行時的this指向
  Person.call(this, name, age) // 實現構造屬性的繼承
  this.className = className
}

// 3. 原型繼承: 利用原型鏈, 繼承于父級構造函數, 繼承原型上的方法
// 語法: 子構造函數.prototype = new 父構造函數()
Student.prototype = new Person()
Student.prototype.study = function() {
  console.log('學生在學習')
}

let stu = new Student('張三', 18, '80期')
stu.say()
console.log(stu)

// 方法通過 原型繼承
// 屬性通過 父構造函數的.call(this, name, age)
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末执庐,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子导梆,更是在濱河造成了極大的恐慌轨淌,老刑警劉巖迂烁,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異猿诸,居然都是意外死亡婚被,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門梳虽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來址芯,“玉大人,你說我怎么就攤上這事窜觉」日ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵禀挫,是天一觀的道長旬陡。 經常有香客問我,道長语婴,這世上最難降的妖魔是什么描孟? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮砰左,結果婚禮上匿醒,老公的妹妹穿的比我還像新娘。我一直安慰自己缠导,他們只是感情好廉羔,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著僻造,像睡著了一般憋他。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上髓削,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天竹挡,我揣著相機與錄音,去河邊找鬼立膛。 笑死此迅,一個胖子當著我的面吹牛,可吹牛的內容都是我干的旧巾。 我是一名探鬼主播耸序,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鲁猩!你這毒婦竟也來了坎怪?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤廓握,失蹤者是張志新(化名)和其女友劉穎搅窿,沒想到半個月后嘁酿,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡男应,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年闹司,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沐飘。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡游桩,死狀恐怖,靈堂內的尸體忽然破棺而出耐朴,到底是詐尸還是另有隱情借卧,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布筛峭,位于F島的核電站铐刘,受9級特大地震影響,放射性物質發(fā)生泄漏影晓。R本人自食惡果不足惜镰吵,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望挂签。 院中可真熱鬧疤祭,春花似錦、人聲如沸竹握。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽啦辐。三九已至,卻和暖如春蜈项,著一層夾襖步出監(jiān)牢的瞬間芹关,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工紧卒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留侥衬,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓跑芳,卻偏偏與公主長得像轴总,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子博个,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內容

  • JavaScript 繼承機制的設計思想就是怀樟,原型對象的所有屬性和方法,都能被實例對象共享盆佣。所以我們只要改變對象的...
    Kevin丶CK閱讀 280評論 0 1
  • 寫出一個構造函數 Animal輸入:空輸出:一個新對象往堡,該對象的共有屬性為 {行動: function(){}}械荷,...
    許驍Charles閱讀 331評論 0 2
  • 本文摘錄及參考自:1. Javascript繼承機制的設計思想2. Javascript 面向對象編程(一):封裝...
    chenhong_f1e2閱讀 755評論 0 3
  • js 的繼承 原型鏈繼承 子類的原型等于父類的實例,這樣子類的實例可以訪問父類本身的屬性和方法虑灰,也可以訪問到父類原...
    前端小白的摸爬滾打閱讀 120評論 0 0
  • ES6 的 class 語法糖你是否已經用得爐火純青呢吨瞎?那如果回歸到 ES5 呢?本文穆咐,將繼續(xù)上一篇的 《Java...
    越前君閱讀 454評論 0 1