【Node.js24.x】Object::preventExtensions()メソッドの使い方
preventExtensionsメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
preventExtensionsメソッドは、オブジェクトへの新しいプロパティの追加を禁止する処理を実行するメソッドです。このメソッドが一度適用されたオブジェクトは「拡張不可」の状態となり、以降、そのオブジェクトに新たなプロパティを追加することはできなくなります。
ただし、既存のプロパティの値の変更や削除、さらにはプロパティの属性(例えば、書き込み可能かどうかなど)を変更することは引き続き可能です。この機能は、オブジェクトの構造を固定し、意図しないプロパティの追加を防ぎたい場合に非常に有効です。例えば、設定情報を保持するオブジェクトのように、その構造が厳密に定められているべき場面で利用することで、コードの堅牢性を高め、予期せぬエラーの発生を抑制できます。
Object.preventExtensions()は一度適用されると元に戻すことができません。オブジェクトが拡張可能であるかどうかは、Object.isExtensible()メソッドを使って確認することができます。このメソッドは、引数として渡されたオブジェクト自体を返します。
構文(syntax)
1const myObject = { 2 currentProperty: 1 3}; 4 5Object.preventExtensions(myObject); 6 7// 新しいプロパティを追加しようとするとTypeErrorが発生する 8try { 9 myObject.newProperty = 2; 10} catch (error) { 11 console.log(error.message); 12} 13 14// オブジェクトには新しいプロパティは追加されていない 15console.log(myObject);
引数(parameters)
obj
- obj: object: 拡張を防止する対象のオブジェクト
戻り値(return)
オブジェクト
Object.preventExtensions()メソッドは、対象のオブジェクトの拡張を禁止したオブジェクトそのものを返します。このオブジェクトには、新しいプロパティを追加できなくなります。