物件導向 繼承

2021-10-02 13:31:23 字數 1662 閱讀 1822

通過「某一種方式」讓乙個物件,可以訪問並使用到另乙個物件中的內容。這種行為我們叫做 繼承!

繼承的作用:

節省了各個建構函式中,大量重複宣告的屬性和方法。

提高了開發效率,並節省了記憶體

functionfn(

)function

animal

(name,***)

}

直接給原型賦值乙個物件,可以簡化批量賦值。 但,等於重構了原型

重構原型時,需要手動建立constructor: 建構函式。 否則原型的指向鏈條會斷

animal.prototype =

;let obj =

newanimal

("猴子"

,"公");

obj.

jiao()

;

call:物件冒充, 又叫做物件借用

fn.

call

(obj,

"大象"

,"公");

function

tiger

(name,age,***,hobby)

作用和call 一致, 都借用物件。

區別:

function

person

(name,age,***,hobby)

let per =

newperson

("小四"

,"18"

,"待定"

,"打籃球");

per.

jiao()

;console.

log(per)

;//name: "小四"

//***: "待定"

//jiao: ƒ ()

//age: "18"

//hobby: "打籃球"

將父類的例項化物件 賦值 給子類的原型

優點:類似於複製了乙個物件,建構函式和原型中所有的資料都可以獲取到。簡約方便使用

缺點:

原型鏈繼承自身沒有辦法傳參。

父類所有的屬性和方法都可以被所有子類共享

function

parent

(name,age)

parent.prototype.

love

=function()

function

ding

(name,***,age)

ding.prototype =

newparent()

;

類式繼承,無法獲取父類的原型鏈

原型鏈繼承,無法直接給父類傳參

組合繼承 = 類式繼承 + 原型鏈繼承

結合了兩種繼承的優點,互相彌補了各自的缺點

let d =

newding

("小丁"

,"男"

,"20");

console.

log(d.name);d.

love()

;

物件導向繼承

using system class class1 class virtualclass class hiddenclass virtualclass class overrideclass virtualclass 結果為 父類 繼承類using system class class1 class...

物件導向 繼承

在原有物件的基礎上,略作修改,得到乙個新的物件,不影響原有物件的功能。即子類不影響父類,子類可以繼承父類的一些功能 復用 function createperson name,createperson.prototype.showname function var p1 new createpers...

物件導向,繼承

物件導向 使用物件時,只關注物件提供的功能,不關注內部實現的細節 特點 抽象 多型 封裝 繼承 組成 方法 函式 屬性 變數 工廠模式 原料 加工 出廠 問題 沒有new 每個物件都創造自己的函式,浪費資源 相當於每次都建立了乙個物件 使用new操作符,替我們建立了乙個空物件 通多this新增屬性 ...