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
をプロトタイプに指定すると、プロトタイプを持たないオブジェクトを作成することができます。
脚註
編集- ^ これは、プロトタイプベースのオブジェクト作成を行います。
外部リンク
編集