Movatterモバイル変換


[0]ホーム

URL:


  1. 開発者向けのウェブ技術
  2. JavaScript
  3. JavaScript リファレンス
  4. 式と演算子
  5. class 式

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。

View in EnglishAlways switch to English

class 式

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2016年3月⁩.

class キーワードを使用すると、式内でクラスを定義することができます。

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

試してみましょう

const Rectangle = class {  constructor(height, width) {    this.height = height;    this.width = width;  }  area() {    return this.height * this.width;  }};console.log(new Rectangle(5, 8).area());// 予想される結果: 40

構文

js
class {  // クラス本体}class name {  // クラス本体}

メモ:式文 は、class 宣言 との曖昧さを避けるため、キーワードclass で始めてはなりません。class キーワードは、文を受け入れないコンテキストで現れた場合にのみ、式を開始します。

解説

class 式は、class 宣言とよく似ており、構文もほぼ同じです。class 宣言と同様に、class 式の本体は厳格モードで実行されます。class 式とclass 宣言の主な違いは、クラス名です。class 式ではこのクラス名を省略できるため、無名クラスを作成することができます。クラス式はクラスを再定義できますが、class 宣言を使用してクラスを再宣言すると、SyntaxError が発生します。詳細については、クラスの章を参照してください。

簡単なクラス式

以下は、名前のない簡単なクラス式です。変数Foo を使って参照できます。

js
const Foo = class {  constructor() {}  bar() {    return "Hello World!";  }};const instance = new Foo();instance.bar(); // "Hello World!"Foo.name; // "Foo"

名前付きクラス式

クラス内部で現在のクラスを参照したい場合は、名前付きクラス式を作成してください。この名前は、そのクラス式自身のスコープ内だけで見ることができます。

js
const Foo = class NamedFoo {  constructor() {}  whoIsThere() {    return NamedFoo.name;  }};const bar = new Foo();bar.whoIsThere(); // "NamedFoo"NamedFoo.name; // ReferenceError: NamedFoo is not definedFoo.name; // "NamedFoo"

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-class-definitions

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp