ES6與ES5的繼承

2022-09-01 15:21:24 字數 515 閱讀 5557

類與es5中的建構函式寫法類似

區別在於屬性要放入constructor中,靜態方法和屬性實列不會繼承

子類與父類不會相互影響

es5

這三個函式是用來改變this的指向。聽不懂沒關係,我們來看個例子就明白。

繼承:子類繼承父類所有屬性和行為,父類不受影響。

目的:找到類之間的共性,精簡**,提高**復用性,保持父類純潔性

我們的原型prototype 繼承不能夠簡單的用=進行,因為涉及到傳值和傳址的問題。

傳值和傳址問題(簡單資料型別傳值,複雜資料型別傳址)

為了解決這個問題,我們有兩種解決方式

1.深拷貝繼承

2.組合繼承

es5繼承與es6繼承

es5中的繼承方式 1.原型鏈繼承 缺點 1.建立例項時無法像父類建構函式傳遞引數 2.因為指定了原型,所以不能實現多繼承 3.父類建構函式上的屬性被所有子類共用,給原型上的屬性賦值會改變其他子類的屬性值 es5 const parent function name,age parent.proto...

ES5與ES6繼承的區別

2.es6的繼承機制完全不同,實質上是先建立父類的例項物件this 所以必須先呼叫父類的super 方法 然後再用子類的建構函式修改this。3.es5的繼承時通過原型或建構函式機制來實現。4.es6通過class關鍵字定義類,裡面有構造方法,類之間通過extends關鍵字實現繼承。子類必須在con...

ES6 與 ES5 繼承的區別

es6 中有類 class 的概念,類 class 的繼承是通過 extends 來實現的,es5 中是通過設定建構函式的 prototype 屬性,來實現繼承的,es6 與 es5 的繼承有什麼區別呢?下面通過 3 個 demo,來分析它們之間的區別。1.es5 繼承 直接上 function a...