class

by 2 contributors:

これは Harmony(ECMAScript 6) 提案の一部であり、実験段階の技術です。
この技術の仕様は安定していません。ブラウザ互換性の一覧表を確認してください。またこれらの構文や動作は、仕様変更などにより、新しいバージョンのブラウザでは変更される可能性があるという点に注意してください。

class 宣言は、プロトタイプベースの継承を使用した名前が付けられた新しいクラスを生成します。

class 式を使用してクラスを定義することもできます。

構文

class name [extends] {
  // class body
}

説明

class 式と同様に、class 宣言の内部は strict mode で実行されます。

class 宣言は、hoisted されません (function 宣言とは異なります)。

単純な class 宣言

次の例では、はじめに Polygon という名前のクラスを定義し、次にそれを拡張して Square という名前のクラスを作成します。コンストラクタで使われている super() は、コンストラクタ内だけで使えることと、this キーワードが使用される前に呼び出されなくてはならないことに注意してください。

class Polygon {
  constructor(height, width) {
    this.name = 'Polygon';
    this.height = height;
    this.width = width;
  }
}

class Square extends Polygon {
  constructor(length) {
    super(length, length);
    this.name = 'Square';
  }
}

仕様

仕様 状況 コメント
ECMAScript 6 (ECMA-262)
The definition of 'Class definitions' in that specification.
勧告候補 Initial definition.

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート 42.0 Available in the Nightly channel only (since February 2015) ? ? ?
Array subclassing 43.0 未サポート ? ? ?
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート ? 42.0 Available in the Nightly channel only (since February 2015) ? ? ?
Array subclassing ? 43.0 未サポート ? ? ?

関連項目

ドキュメントのタグと貢献者

Contributors to this page: Marsf, YuichiNukiyama
最終更新者: Marsf,
サイドバーを隠す