JavaScript/Object/create
表示
< JavaScript | Object
Object.create() は、指定されたプロトタイプオブジェクトとプロパティを持つ新しいオブジェクトを作成するメソッドです。このメソッドは、新しいオブジェクトを返します[1]。
構文
[編集]Object.create(proto, [propertiesObject])
proto: 新しく作成するオブジェクトのプロトタイプオブジェクト。propertiesObject(オプション): 新しく作成するオブジェクトに追加するプロパティを定義するオブジェクト。
例
[編集]プロトタイプオブジェクトを使用して新しいオブジェクトを作成するプログラム
[編集]以下のプログラムは、Object.create() を使用して新しいオブジェクトを作成します。
const person = { greet: function() { console.log(`Hello, my name is ${this.name}`); } }; const john = Object.create(person); john.name = 'John Doe'; john.greet(); // Hello, my name is John Doe
このプログラムでは、Object.create() を使用して person オブジェクトをプロトタイプとする新しいオブジェクト john を作成しています。john オブジェクトは person オブジェクトの greet メソッドを継承しています。
プロパティを指定して新しいオブジェクトを作成するプログラム
[編集]以下のプログラムは、Object.create() を使用してプロパティを指定して新しいオブジェクトを作成します。
const person = { greet: function() { console.log(`Hello, my name is ${this.name}`); } }; const john = Object.create(person, { name: { value: 'John Doe', writable: true, enumerable: true, configurable: true }, age: { value: 30, writable: true, enumerable: true, configurable: true } }); john.greet(); // Hello, my name is John Doe console.log(john.age); // 30
このプログラムでは、Object.create() を使用して person オブジェクトをプロトタイプとし、name と age プロパティを持つ新しいオブジェクト john を作成しています。
注意点
[編集]- プロトタイプチェーン:
Object.create()は、指定されたプロトタイプオブジェクトを新しいオブジェクトのプロトタイプチェーンに追加します。 - プロパティの定義:
propertiesObjectを使用して、新しいオブジェクトにプロパティを追加することができます。この場合、プロパティの属性(writable,enumerable,configurableなど)を指定することができます。 - null をプロトタイプに指定:
nullをプロトタイプに指定すると、プロトタイプを持たないオブジェクトを作成することができます。
脚註
[編集]- ^ これは、プロトタイプベースのオブジェクト作成を行います。
外部リンク
[編集]