MDN之Web 開發技術【類表達式】

類表達式是用來定義類的一種語法。和函數表達式相同的一點是,類表達式可以是命名也可以是匿名的。如果是命名類表達式,這個名字只能在類體內部才能訪問到。JavaScript 的類也是基於原型繼承的。

語法

const MyClass = class [className] [extends] {
  // class body
};

描述

類表達式的語法和類語句的語法很類似,只是在類表達式中,你可以省略掉類名,而類語句中不能。

和類聲明一樣,類表達式中的代碼也是強制嚴格模式的。

示例

使用類表達式

下面的代碼使用類表達式語法創建了一個匿名類,然後賦值給變量 Foo

let Foo = class {
  constructor() {}
  bar() {
    return "Hello World!";
  }
};

let instance = new Foo();
instance.bar(); 
// "Hello World!"

命名類表達式
如果你想在類體內部也能引用這個類本身,那麼你就可以使用命名類表達式,並且這個類名只能在類體內部訪問。

const Foo = class NamedFoo {
  constructor() {}
  whoIsThere() {
    return NamedFoo.name;
  }
}

let bar = new Foo();

bar.whoIsThere(); 
// "NamedFoo"

NamedFoo.name; 
// ReferenceError: NamedFoo is not defined

Foo.name; 
// "NamedFoo"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章