JavaScript中幾種物件繼承的方式對比

2021-09-12 00:20:18 字數 1705 閱讀 6723

function

parent()

parent.prototype.

say=

function()

function

child()

console.

log(

newchiid()

.say()

)//error!!

缺點:

//借助原型鏈實現繼承

function

parent()

function

child()

child.prototype =

newparent()

//!important

newchild()

.__proto__ === child2.prototype //true

var obj1 =

newchild()

var obj2 =

newchild()

obj1.play.

push(4

)obj1.play //[1,2,3,4]

obj2.play //[1,2,3,4] !error

obj1.__proto__ === obj2.__proto__ //true

缺點:

//組合方式繼承

function

parent()

function

child()

child.prototype =

newparent()

obj1.play.

push(4

)obj1.play //[1,2,3,4]

obj2.play //[1,2,3]

解決上面原型鏈繼承共享原型物件的問題

缺點:

function

parent()

function

child()

child.prototype = parent.prototype //繼獲取父級原型物件中的屬性

//子類和父類的prototype是同乙個,裡面包含的constructor也是同乙個,都指向父類

var obj =

newchild()

console.

log(obj.constructor)

//parent !error

解決每次都new例項都會執行一次建構函式的問題

缺點:

//寄生組合式繼承

function

parent()

function

child()

child.prototype = object.

create

(parent.prototype)

//建立中間空物件,隔離子類和父類的prototype,可以修改子類的constructor

child.prototype.constructor = child //修改子類的constructor

var obj =

newchild()

obj instance of child //true

obj instance of parent //true

obj.constructor = child //true

javascript 建立物件的幾種方式

呃呃呃,又開啟js高程了,為啥有一種嚴肅的心情捏?今天看了建立物件這一節,寫些筆記,鞏固一下,有時間會繼續補充的。我們知道,想要操作這些物件,首先你得有物件,物件 找?當然是自己建立唄!說一下比較常用的3種建立物件的方式。1 字面量 var obj1 var obj2 2 new操作符了解這部分建議...

javascript物件的幾種建立方式

一 工廠模式 用函式來封裝以特定介面建立物件 function createperson name,age,job var person1 createperson rose 18,software var person2 createperson jack 22,software 二 建構函式模式...

JavaScript中的物件

物件的實質是一組名值對,其中值可以為資料或函式。當值為資料時,對應的名被稱為物件的屬性 當值為函式時,對應的名被稱為物件的方法。通過object 類建立物件let person new object person.name guagua person.age 18 person.say functi...