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 ...