JavaScript/Object/setPrototypeOf
表示
< JavaScript | Object
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