CodeGym /コース /Frontend SELF JA /クラスのシンタックス

クラスのシンタックス

Frontend SELF JA
レベル 39 , レッスン 4
使用可能

5.1 クラスの宣言

ECMAScript 6 (ES6) がJavaScriptに導入されたことで、オブジェクトを作成し、継承を管理するための新しい構造である キーワードclassが出てきたんだ。クラスはオブジェクトを作成したりプロトタイプを使って操作するのに、 より便利で分かりやすいシンタックスを提供してくれるんだよね。

JavaScriptのクラスは、既存のプロトタイプベースの継承システムに対するシンタックスシュガーなんだよね。 これにより、オブジェクトの作成と管理がもっと分かりやすく、構造的になるんだ。

クラスの宣言

JavaScriptでクラスを宣言するには、キーワードclassを使ってクラス名を続けて書く。 クラスの本文は波括弧{}の中に記述するんだ。

例:

JavaScript
    
      class Person {
        // クラスのメソッド
        greet() {
          console.log('Hello!');
        }
      }

      // クラスのインスタンス作成
      const person = new Person();
      person.greet(); // 出力: Hello!
    
  

クラスの式

クラスは宣言と式の両方で宣言できる。クラスの式は名前付きまたは無名にできるんだ。

名前付きクラスの例:

JavaScript
    
      const Person = class PersonClass {
        greet() {
          console.log('Hello!');
        }
      };

      const person = new Person();
      person.greet(); // 出力: Hello!
    
  

無名クラスの例:

JavaScript
    
      const Person = class {
        greet() {
          console.log('Hello!');
        }
      };

      const person = new Person();
      person.greet(); // 出力: Hello!
    
  

5.2 クラスのフィールドとメソッド

クラスのプロパティ

ES6ではクラスのプロパティはコンストラクタ内でしか宣言できない。しかし、より新しいバージョンのJavaScript(ES2022) ではクラスフィールドが導入され、コンストラクタの外でプロパティを宣言できるようになったんだよね。

コンストラクタ内でプロパティを使う例:

JavaScript
    
      class User {
        constructor(username, email) {
          this.username = username;
          this.email = email;
        }
      }

      const user = new User('john_doe', 'john@example.com');

      console.log(user.username); // "john_doe"
      console.log(user.email); // "john@example.com"
    
  

クラスフィールドを使う例(ES2022):

JavaScript
    
      class User {
        username = 'default_username';
        email = 'default@example.com';

        constructor(username, email) {
          this.username = username;
          this.email = email;
        }
      }

      const user = new User('john_doe', 'john@example.com');

      console.log(user.username); // "john_doe"
      console.log(user.email); // "john@example.com"
    
  

説明:

  • 最初の例では、プロパティusernameemailはコンストラクタ内で宣言され、初期化される
  • 2番目の例では、プロパティusernameemailはクラスフィールドとしてコンストラクタの外で宣言される

クラスのメソッド

クラスはクラス本文内でメソッドを含むことができる。これらのメソッドは、自動的に作成されたオブジェクトのプロトタイプに追加されるんだ。

クラスのメソッドの例:

JavaScript
    
      class Animal {
        speak() {
          console.log('Animal speaks');
        }

        eat() {
          console.log('Animal eats');
        }
      }

      const animal = new Animal();
      animal.speak(); // 出力: Animal speaks
      animal.eat();   // 出力: Animal eats
    
  

3.3 クラスの使用例

複雑なオブジェクトの作成

クラスを使うと、様々なメソッドやプロパティを持つ複雑なオブジェクトが作れるんだ。

例:

JavaScript
    
      class Car {
        constructor(brand, model) {
          this.brand = brand;
          this.model = model;
        }

        startEngine() {
          console.log(`${this.brand} ${this.model} engine started.`);
        }

        stopEngine() {
          console.log(`${this.brand} ${this.model} engine stopped.`);
        }
      }

      const myCar = new Car('Toyota', 'Camry');
      myCar.startEngine(); // 出力: Toyota Camry engine started.
      myCar.stopEngine();  // 出力: Toyota Camry engine stopped.
    
  
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION