十九、JavaScript繼承
阿新 • • 發佈:2021-07-18
繼承的概念:讓一個物件可以訪問到另一個物件中的屬性和方法
一、建構函式繼承
建構函式:本質還是一個函式,是一個專門生成物件的函式,生成的物件有屬性屬性值,還有函式方法
-
-
為了節約程式碼,可以從之前的建構函式中,繼承屬性和方法
-
ES5建構函式語法
1 function CreateObj1(name,age){ 2 this.name = name; 3 this.age = age; 4 } 5 createObj1.prototype.fun = function(){ 6 console.log('我是ES5語法建立的例項化物件')7 }
ES6的建構函式語法
1 class CreateObj2{ 2 constructor(name, age){ 3 this.name = name; 4 this.age = age; 5 } 6 fun(){ 7 console.log('我是ES6語法建立的例項化物件') 8 } 9 }
二、ES6繼承語法
1 // 1、繼承語法 2 class 子類建構函式名稱 extends 父類建構函式名稱{} 3 4 // 2、constructor 構造器中,定義引數 5 // 引數可以是從父級繼承來的,也可以是子類自己定義的 6 // 從父類繼承的屬性必須用 super(屬性) 來定義7 // 可以繼承父類所有的屬性或者一部分屬性 8 9 // 3、也可以定義子類的屬性和子類的方法 10 11 // 4、父類的所有方法都會繼承
ES5 或者 ES6 先宣告一個建構函式
1 // 父類建構函式 2 function CreateObj1(name,age){ 3 this.name = name; 4 this.age = age; 5 } 6 CreateObj1.prototype.fun = function(){ 7 console.log('我是ES5語法建立的例項化物件') 8 }
繼承父類建構函式的屬性和方法
1 // 子繼承父 2 class Son extends CreateObj1{3 constructor(name, age, sex){ 4 super(name); 5 this.age = age; 6 this.sex = sex; 7 } 8 9 fun2(){ 10 console.log('我是自己的fun') 11 } 12 } 13 14 const obj1 = new Son( '張三', 18, '男');