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 オブジェクトをプロトタイプとし、nameage プロパティを持つ新しいオブジェクト john を作成しています。

注意点

編集
  • プロトタイプチェーン: Object.create() は、指定されたプロトタイプオブジェクトを新しいオブジェクトのプロトタイプチェーンに追加します。
  • プロパティの定義: propertiesObject を使用して、新しいオブジェクトにプロパティを追加することができます。この場合、プロパティの属性(writable, enumerable, configurable など)を指定することができます。
  • null をプロトタイプに指定: null をプロトタイプに指定すると、プロトタイプを持たないオブジェクトを作成することができます。

脚註

編集
  1. ^ これは、プロトタイプベースのオブジェクト作成を行います。

外部リンク

編集