【JavaScript ECMAScript】Object::Object.create静的メソッドの使い方
Object.create()静的メソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Object.create()メソッドは、指定されたプロトタイプ(原型)を持つ新しいオブジェクトを生成するメソッドです。このメソッドは、JavaScriptのプロトタイプベースのオブジェクト指向プログラミングにおいて、オブジェクトの継承を明示的に、かつ柔軟に実現するために利用されます。
このメソッドは主に二つの引数を取ります。最初の引数であるprotoは必須で、新しく生成されるオブジェクトのプロトタイプとなるオブジェクトを指定します。新しく作成されるオブジェクトは、このprotoオブジェクトのプロパティやメソッドを継承します。プロトタイプを持たないオブジェクトを作成したい場合はnullを指定します。二つ目の引数propertiesObjectはオプションで、新しいオブジェクトに直接追加したいプロパティとその属性(例えば、書き込み可能か、列挙可能かなど)を記述するオブジェクトを指定します。このpropertiesObjectは、Object.defineProperties()メソッドで使用されるプロパティ記述子と同じ形式に従います。
Object.create()を使用することで、既存のオブジェクトの機能を再利用しつつ、新しい独自の特性を持つオブジェクトを効率的に作成できます。例えば、あるオブジェクトの機能を完全にコピーしつつ、その一部だけを変更した新しいオブジェクトを作成する際に役立ちます。これにより、コンストラクター関数を使わずにプロトタイプチェーンを直接操作し、オブジェクト間の複雑な関係性を設計することが可能になります。ES2015で導入されたclass構文の背後にあるプロトタイプ継承のメカニズムを理解する上でも、このメソッドの働きは基礎的な概念となります。
構文(syntax)
1const prototypeObject = { 2 method: function() { /* ... */ }, 3 property: 'value' 4}; 5 6const newObject = Object.create(prototypeObject);
引数(parameters)
proto, propertiesObject
- proto: object | null: 新しく作成されるオブジェクトのプロトタイプとなるオブジェクト、または
nullを指定します。 - propertiesObject: object | undefined: 新しく作成されるオブジェクトのプロパティを定義するオブジェクトを指定します。省略可能です。
戻り値(return)
Object
指定されたプロトタイプオブジェクトを継承した新しいオブジェクトを生成します。