■クラスとは
オブジェクトを作成するための設計図のようなものです。クラスは、オブジェクトの特性(属性)や機能(メソッド)を定義します。クラス自体はオブジェクトではありませんが、オブジェクトを作成するためのテンプレートのようなものです。
■インスタンスとは
クラスから作成されたオブジェクトのことです。インスタンスは、クラスで定義された属性とメソッドを持ちます。クラスから作成された複数のインスタンスは、それぞれ独自の属性を持ちます。
- JavaScriptでは、クラスとインスタンスは以下のように定義されます。
クラスの定義:
class MyClass {
constructor(param1, param2) {
this.property1 = param1;
this.property2 = param2;
}
myMethod() {
console.log("Hello World!");
}
}
上記のコードでは、MyClass
という名前のクラスを定義しています。constructor関数は、クラスをインスタンス化する際に呼び出され、新しいインスタンスにプロパティを追加します。myMethod()
は、クラスに属するメソッドを定義します。
インスタンスの生成:
const myinstance = new MyClass("価値1", "価値2");
上記のコードでは、MyClass
クラスからmyInstance
という名前のインスタンスを作成しています。constructor関数の引数は、プロパティに渡されます。
インスタンスのプロパティやメソッドの呼び出し:
console.log(myInstance.property1); // "価値1"
console.log(myInstance.property2); // "価値2"
myInstance.myMethod(); // "Hello World!"
上記のコードでは、myinstance
というインスタンスのプロパティとメソッドにアクセスしています。property1
とproperty2
は、constructor関数で定義されたプロパティです。myMethod()
は、クラスに属するメソッドです。
※クラスは大文字、インスタンスは小文字から定義するのが通例です
※constructor関数について
constructor関数は、JavaScriptにおいて、クラスを定義するための特別なメソッドの一つです。この関数は、クラスがインスタンス化されたときに実行され、インスタンスに初期値を与えるために使用されます。
以下は、constructor関数を使用してクラスを定義し、インスタンスを生成する例です。
// Rectangleクラスを定義する
class Rectangle {
// コンストラクタ関数を定義する
constructor(width, height) {
this.width = width;
this.height = height;
}
// 面積を計算するメソッドを定義する
getArea() {
return this.width * this.height;
}
}
// Rectangleクラスからインスタンスを生成する
const rect = new Rectangle(10, 20);
// 面積を出力する
console.log(rect.getArea()); // 結果: 200
上記の例では、Rectangle
クラスを定義しています。このクラスには、constructor関数が定義されています。この関数は、width
とheight
の2つの引数を受け取り、それらを使用してインスタンスにwidth
とheight
の値を設定します。また、Rectangle
クラスには、getArea
メソッドがあり、このメソッドはインスタンスのwidth
とheight
の値を使用して、面積を計算します。
次に、newキーワードを使用して、Rectangle
クラスからrect
という名前のインスタンスを生成します。これにより、width
が10、height
が20の新しいRectangle
オブジェクトが作成されます。
最後に、インスタンスのgetArea
メソッドを呼び出して、面積を出力します。
constructor関数は、クラス内に初期化処理を書くための便利な方法です。
この関数を使用することで、インスタンスを生成するたびに同じ初期化処理を書く必要がなくなり、コードを簡潔に保つことができます。
また、constructor関数は、クラスを継承する際にも重要な役割を果たします。継承したクラスでも、親クラスのconstructor関数を呼び出すことで、親クラスと同じ初期化処理を実行することができます。