ES6之前的4種繼承方法

2021-09-28 18:19:47 字數 2283 閱讀 5376

// 汽車例子:

// 使用call()方法達到繼承效果:需要把實參按照形參的個數傳進去

function

wheel

(wheelsize,style)

function

sit(c,sitcolor)

function

model

(height,width)

function

car(wheelsize,style,c,sitcolor,height,width)

var car =

newcar

(100

,"彩色的黑"

,"5"

,"白色"

,1800

,1900);

console.

log(car)

function

person()

function

student

(name,age,***,tel)

var stu =

newstudent

("merry",25

,"male"

,110);

console.

log(stu.name,

//merry

stu.age,

// stu.***,

stu.tel

);

function

father()

father.prototype.name =

'summy'

;function

son(

)// 讓father函式的原型也變成son函式的原型

son.prototype = father.prototype;

son.prototype.*** =

"male"

;//這樣的修改會影響父原型

var s =

newson()

;var f =

newfather()

;

console.

log(s.***)

; console.

log(f.***)

;

function

inherit

(traget,origin)

f.prototype = origin.prototype;

traget.prototype =

newf()

;//此時修改traget的建構函式origin,,按理說應該是traget

//修改:

traget.prototype.constructor = traget;

//可選項的完善 想記錄traget真實繼承至誰

traget.prototype.ubr = origin.prototype;

}inherit

(son, father)

;var s =

newson()

;

grand.prototype.lastname =

"jack"

;function

grand()

var grand =

newgrand()

; father.prototype = grand;

function

father()

;this

.num =

100;

}var father =

newfather()

; son.prototype = father;

function

son(

)var son =

newson()

;// 試圖修改父中的屬性,並且屬性為基本資料型別 結果:並沒有修改父中的屬性,而是在子中新增了乙個屬於自己的name屬性

son.name =

"小華"

;// 修改建構函式中的引用值,--》等用於修改了父中的內容

son.cars.car2=

"蘭博基尼"

; son.num++

; console.

log(father.num)

;//100

console.

log(son.num)

;//101

<

/script>

繼承及ES6繼承

物件導向的三大特點 多型 繼承 封裝 繼承 乙個型別的物件能夠訪問另外乙個型別的屬性和方法 函式 類與類之間的關係 類就是眾多例項共有的屬性和方法的乙個抽象 原型物件中的this指向例項 function person var person newperson person只是乙個例項 consol...

JS繼承的6種方式 非ES6

本篇部落格主要來整合一下js繼承的六種方式及其優缺點。首先我們提供乙個父類 父類 function person name 本節中我們使用到的子類如下 子類 function staff office staff.prototype new person staff const a new staf...

繼承 ES6的繼承語法

什麼是繼承?繼承是發生在父子級關係中的現象 繼承 是 建構函式 的高階應用 就是兩個互為父子級關係的建構函式的應用 子級建構函式,繼承的是父級建構函式的屬性和方法 常見的繼承操作,分為 es5 的繼承語法 和 es6 的繼承語法 實際專案中一般不會直接使用繼承語法,一般都是通過框架來完成繼承,不用專...