Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ JavaScriptクラスにおけるメソッドの定義 | JavaScriptクラスと継承の習得
JavaScriptロジックとインタラクション

bookJavaScriptクラスにおけるメソッドの定義

メニューを表示するにはスワイプしてください

コンストラクターを使ってプロパティを追加する方法を理解したので、次はクラスにメソッドを追加する方法を見ていきます。

クラスメソッドの定義と利用

これらのメソッドは通常、オブジェクトのプロパティを操作し、そのデータとやり取りする手段を提供します。

クラスメソッドを定義するには、functionキーワードを使わずにクラス内で関数を宣言します。

class Animal {
  constructor(name, type) {
    this.name = name;
    this.type = type;
  }

  // Class method
  getInfo() {
    return `${this.name} is a ${this.type} animal.`;
  }
}

この例では、getInfoAnimal クラスのメソッドです。Animal の任意のインスタンスは、このメソッドを呼び出して、その特定のインスタンスに関する情報を取得できます。

クラスのインスタンスにメソッドが関連付けられる仕組み

クラスのインスタンスを作成すると、クラス内で定義されたメソッドは自動的にそのインスタンスで利用可能になります。これらのメソッドは、this キーワードを使ってインスタンスのプロパティへアクセスし、操作できます。this は現在のオブジェクトを指します。

メソッドは、各オブジェクト(インスタンス)が持つツールのようなものと考えられます。各オブジェクトは独自のデータ(プロパティ)を持っていますが、そのデータを操作するための同じツール(メソッド)を共有しています。

例を見てみましょう:

1234567891011121314151617
class Animal { constructor(name, type) { this.name = name; this.type = type; } // Class method getInfo() { return `${this.name} is a ${this.type} animal.`; } } const lion = new Animal('Lion', 'Wild'); console.log(lion.getInfo()); // Output: Lion is a Wild animal. const pig = new Animal('Pig', 'Domestic'); console.log(pig.getInfo()); // Output: Pig is a Domestic animal.
copy

この例では、lionpig の両方が Animal クラスのインスタンスです。getInfo メソッドは両方で利用可能であり、呼び出された特定のインスタンスのプロパティに基づいて異なる結果を返します。これは、メソッドがインスタンス間で共有されつつ、それぞれのデータに対して動作することを示しています。

クラスメソッドを使う理由

クラスメソッドは、オブジェクト固有の動作を定義します。コードのモジュール化や保守性の向上、責任の明確な分離を実現します。オブジェクトのプロパティを直接操作するのではなく、クラスメソッドを通じてオブジェクトのデータに安全にアクセスし、変更する方法を提供します。

オブジェクトの状態を変更するメソッドの例:

1234567891011121314151617181920
class Animal { constructor(name, type) { this.name = name; this.type = type; } getInfo() { return `${this.name} is a ${this.type} animal.`; } changeType(newType) { this.type = newType; } } const lion = new Animal('Lion', 'Wild'); console.log(lion.getInfo()); // Output: Lion is a Wild animal. lion.changeType('Domestic'); console.log(lion.getInfo()); // Output: Lion is a Domestic animal.
copy

この例では、changeType メソッドによってオブジェクトの type プロパティを更新可能。メソッドがオブジェクトの状態に直接影響するロジックをカプセル化できることを示している。

1. クラスメソッドとは何か?

2. クラス内でインスタンスが利用できる speak というメソッドをどのように定義するか?

3. 次のコードは何を出力しますか?

question mark

クラスメソッドとは何か?

正しい答えを選んでください

question mark

クラス内でインスタンスが利用できる speak というメソッドをどのように定義するか?

正しい答えを選んでください

question mark

次のコードは何を出力しますか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  4

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 1.  4
some-alt