首頁  >  文章  >  web前端  >  es6中實作繼承的方式是什麼

es6中實作繼承的方式是什麼

青灯夜游
青灯夜游原創
2022-04-11 16:43:192682瀏覽

在es6中,可利用class關鍵字配合extends關鍵字來實現繼承。 ES6中引入了class關鍵字來宣告類,而class(類別)可透過extends來繼承父類別中屬性和方法,語法「class 子類別名稱 extends 父類別名稱{...};」。

es6中實作繼承的方式是什麼

本教學操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。

es6中可利用class關鍵字配合extends關鍵字來實現繼承

#在ES6中,class (類別)作為物件的模板被引入,可以透過class關鍵字定義類別。

es6繼承

#Class 可以透過extends關鍵字實作繼承

class Animal {}
class Cat extends Animal { };

上面程式碼中定義了一個Cat 類,該類別透過 extends關鍵字,繼承了Animal 類別中所有的屬性和方法。但是由於沒有部署任何程式碼,所以這兩個類別完全一樣,等於複製了一個Animal類別。下面,我們在Cat內部加上程式碼。

class Cat extends Animal {
    constructor(name, age, color) {
        // 调用父类的constructor(name, age)
        super(name, age);
        this.color = color;
    }
    toString() {
        return this.color + ' ' + super.toString(); // 调用父类的toString()
    }
}

constructor方法和toString方法之中,都出現了super關鍵字,它在這裡表示父類別的建構函數,用來新建父類別的this物件。

要注意的是:class 關鍵字只是原型的語法糖, JavaScript 繼承仍然是基於原型實現的。

class Pet {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  showName() {
    console.log("调用父类的方法");
    console.log(this.name, this.age);
  }
}

// 定义一个子类
class Dog extends Pet {
  constructor(name, age, color) {
    super(name, age); // 通过 super 调用父类的构造方法
    this.color = color;
  }

  showName() {
    console.log("调用子类的方法");
    console.log(this.name, this.age, this.color);
  }
}

優點:

  • 清楚方便

#缺點:

  • 不是所有的瀏覽器都支援class。

【相關推薦:javascript影片教學web前端

#

以上是es6中實作繼承的方式是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn