コンテンツにスキップ

JavaScript/Object/setPrototypeOf

出典: フリー教科書『ウィキブックス(Wikibooks)』

Object.setPrototypeOf()

[編集]

Object.setPrototypeOf() は、JavaScript において指定したオブジェクトのプロトタイプ(内部プロトタイプリンク)を設定するためのメソッドです。このメソッドを使用することで、オブジェクトの継承チェーンを動的に変更できます。

構文
Object.setPrototypeOf(obj, prototype)
引数
  • obj プロトタイプを設定する対象のオブジェクト。
  • prototype 設定するプロトタイプオブジェクト。または、null(プロトタイプチェーンを断ち切る場合)。
戻り値
指定したオブジェクト(obj)そのものが返されます。

解説

[編集]

Object.setPrototypeOf() は、オブジェクトのプロトタイプチェーンを動的に変更する非常に強力なメソッドです。ただし、プロトタイプの設定を変更することは、性能に大きな影響を及ぼす可能性があるため、慎重に使用する必要があります。

注意事項

[編集]
  • プロトタイプを動的に変更することは、コードのパフォーマンスを低下させる原因となります。
  • 他の開発者がコードを理解しにくくなる可能性があるため、一般的には非推奨とされています。
  • 新しいオブジェクトを生成する際には、Object.create() を使用するほうが望ましいです。

[編集]

プロトタイプの設定

[編集]

以下の例では、既存のオブジェクトに新しいプロトタイプを設定します。

const obj = {};
const proto = {
  greet() {
    console.log("Hello!");
  }
};

Object.setPrototypeOf(obj, proto);

obj.greet(); // "Hello!" と出力

プロトタイプを null に設定

[編集]

プロトタイプを null に設定することで、プロトタイプチェーンを断ち切ることができます。

const obj = {};

Object.setPrototypeOf(obj, null);

console.log(Object.getPrototypeOf(obj)); // null

関連項目

[編集]

外部リンク

[編集]