JavaScriptにおけるオブジェクトコンストラクタ
同じ型のオブジェクトを多数作成する必要がある場面はよくあります。JavaScriptでは、これを行うためのいくつかの方法が用意されています。
コンストラクタ関数
コンストラクタは、オブジェクトを構築・設定するための特別な関数です。呼び出す際は new キーワードを使用します。通常の関数と区別しやすくするために、関数名は常に大文字で始めるようにしましょう。
new キーワードを忘れると、その関数は通常の関数として動作し、適切なオブジェクトを作成できません。
デフォルト値
コンストラクタ内でデフォルト値を設定できます。これにより、引数が不足している場合でも、オブジェクトが常に有効なデータを持つことが保証されます。
例:
function Person(name = "Unknown", age = 0) {
this.name = name;
this.age = age;
}
プロトタイプとメモリ
メソッドをコンストラクタに直接追加するよりも、プロトタイプに追加する方が効率的です。プロトタイプを使用すると、すべてのインスタンスが単一のメソッドを共有します。これにより、新しいオブジェクトごとにメソッドを再作成する必要がなくなるため、メモリを節約できます。
Object.create()
このメソッドは、既存のオブジェクトをプロトタイプとして使用して、新しいオブジェクトを作成します。コンストラクタを必要とせずに継承を確立できます。新しいオブジェクトは、元のオブジェクトのプロパティにアクセスできます。
クラスの継承
モダンなJavaScriptでは、継承を扱うためにクラスを使用します。親クラスを継承(extends)する子クラスを作成できます。子クラスから親クラスへデータを渡すには、super() キーワードを使用します。これにより、子クラスは独自の機能を追加しつつ、親クラスのプロパティを利用できるようになります。
なぜコンストラクタを使用するのか?
- 再利用可能なコード: 類似したオブジェクトを素早く大量に作成できます。
- カプセル化: オブジェクトの設定ロジックを一箇所にまとめて保持できます。
- 簡単な初期化: 作成時に特定の値を設定できます。
- 継承: 単純なオブジェクトから複雑なオブジェクトを構築できます。
- クリーンなコード: ロジックを整理し、読みやすく保てます。
出典: https://www.geeksforgeeks.org/javascript/js-constructor-method/ 出典: https://www.w3schools.com/js/js_object_constructors.asp 全文: https://dev.to/kamalesh_ar_6252544786997/object-constructors-in-javascript-2e96
オプションの学習コミュニティ: https://t.me/GyaanSetuAi