ユーザ用ツール

サイト用ツール


ecmascript:class

文書の過去の版を表示しています。


class

class Test {
  // 静的フィールド
  static version = '1.0.0';
 
  // 静的メソッド
  static info() {
    // 注意 staticコンテキストでのthis.nameはクラス名を指す(`#name`ではない)
    return `${this,name} class, version ${this.version}`
  }
 
  // privateフィールド
  #name = '';
 
  // コンストラクタ
  constructor(v) {
    this.#name = v;
  }
 
  // メソッド
  getMessage() {
    return 'Hello from ${this.#name}'
  }
 
  // getter
  get name() {
    return this.#name;
  }
 
  // setter
  set name(v) {
    this.#name = v;
  } 
}

クラスの実態は関数。(JSのクラスはオブジェクト生成構文のシンタックスシュガーに過ぎない)

console.log(typeof Test);  // => function

継承

class Test2 extends Test {
  // 拡張メソッド
  print() {
    console.log(this.getMessage());
  }
}
ecmascript/class.1757397754.txt.gz · 最終更新: by nullpon