js中的物件導向。

2021-09-25 21:37:48 字數 2290 閱讀 6021

1.js中的物件導向就是類,而類中關鍵的就是繼承

2.首先宣告乙個類

var gandparent = function()

3.建構函式實現繼承

function grandparent () 

grandparent.prototype.say=function()

function son()

console.log(new son().name)

console.log(new son().say())

缺點: 通過建構函式實現繼承,只能實現部分繼承,原型物件上的屬性不能被繼承

4.原型鏈繼承

function person() 

person.prototype.say=function()

function man()

man.prototype = new person()

let a = new man()

let b = new man()

a.friend.push('sb')

雖然可以實現繼承,但是new出來的兩個例項,其中乙個屬性變了,另乙個也會改變。因為他們是繼承的同乙個建構函式。

5.以上兩種方式組合起來

function person() 

person.prototype.say=function()

function man()

man.prototype = new person()

let a = new man()

let b = new man()

a.friend.push('sb')

以上兩種繼承結合可以達到效果,但是每次例項化的時候,都要重複去例項化建構函式

6.優化(繼承原型)

function person() 

person.prototype.say=function()

function man()

man.prototype = person.prototype

let a = new man()

let b = new man()

a.friend.push('sb')

可以達到相同的效果

7.object.create(object.create()方法是ecmascript 5中新增的方法,這個方法用於建立乙個新物件。被建立的物件繼承另乙個物件的原型,在建立新物件時可以指定一些屬性。)

function person() 

person.prototype.say=function()

function man()

// man.prototype = person.prototype

man.prototype = object.create(person.prototype)

let a = new man()

let b = new man()

a.friend.push('sb')

同樣可以達到效果

JS中的物件導向

一 首先建立js物件的四種方式 1.普通模式 var person new object person.name irving person.age 22 person.sayhi function 但是這樣每次去建立乙個類的物件相當的麻煩。所以有了下面的集中建立物件的模式。2.工廠模式 funct...

js中的物件導向

很火的一張圖很生動形象 mdn 給了我們一堆術語 請嘗試理解物件導向,並背誦 mdn 裡的以下內容 class 類 定義物件的特徵。它是物件的屬性和方法的模板定義.object 物件 類的乙個例項。property 屬性 物件的特徵,比如顏色。method 方法 物件的能力,比如行走。constru...

js中物件導向的繼承

參考 繼承 缺點 修改子類dog.prototype的同時也影響到了父類的animal.prototype 物件導向的拷貝繼承 上面 只是用了淺拷貝實現了物件的繼承,jquery中就是利用了拷貝繼承。function extend c,p if typeof p object else if win...