es6 類的繼承

2021-09-25 04:40:52 字數 1226 閱讀 8088

function animal(name)

animal.prototype.drink = function()

animal.prototype.eat = function(item)

function dog(name,breed)

= animal.prototype

// dog.prototype = animal.prototype才能繼承animal類上的原型方法 但是存在問題

// 1.dog的例項的constructor指向animal這個類,本來應該指向dog這個類

// 解決方法

.constructor = dog;//但是 dog.prototype 與 anima.prototype 指向同一片記憶體空間。那麼animal的例項的原型也就指向了dog

// 總體解決方法

dog.prototype = object.create(animal.prototype); 指向乙個空物件,這個空物件的原型是animal.prototype

dog.prototype.constructor = dog;// 然後修改dog.prototype.constructor = dog 不再是同一片記憶體空間,不再影響

dog.prototype.bark = function()

let wangcai = new dog('wangcai','田園犬');

// es6類的繼承

class animal

drink()

eat(item)

static info()

}class dog extends animal

bark()

}let wangcai = new dog('wangcai','田園犬');

// 靜態方法的繼承 子類也能繼承父類的靜態方法

animal.info();

dog.info();

// wangcai.info(); 靜態方法不能通過例項呼叫

// 繼承內建的建構函式

class movieslist extends array

add(item)

topstar(limit)).slice(0,limit);}}

let mylove = new movieslist('我最喜歡的電影',,,

,)

ES6 類的繼承

類的繼承 super 關鍵字 子類通過 extends 關鍵字來繼承父類的所有屬性和方法 子類必須在constructor中呼叫super方法,否則新建例項會報錯 es5的繼承中,實質是先創造子類的例項物件this,然後再將父類的方法 屬性新增到this上面。es6的繼承中,實質是先創造父類的例項物...

ES6類的繼承

es6 引入了關鍵字class來定義乙個類,constructor是構造方法,this代表例項物件。constructor相當於python的init而this則相當於self 類之間通過extends繼承,繼承父類的所有屬性和方法。super關鍵字,它代指父類的this物件,子類必須在constr...

ES6 類和繼承

class person 等價於 person.prototype.showname showname let p1 new person aaaa 12 表示式形式 const person class let p1 new person aaaa 12 變數定義方法名 let aaa ssss ...