【Node.js24.x】Object::isFrozen()メソッドの使い方
isFrozenメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
isFrozenメソッドは、指定されたオブジェクトが凍結されているかどうかを判定するメソッドです。このメソッドは、Node.jsの組み込みオブジェクトであるObjectクラスに属しており、引数として渡されたオブジェクトが、Object.freeze()メソッドなどによって完全に変更不可の状態になっているかを真偽値(trueまたはfalse)で返します。
オブジェクトが「凍結されている」とは、以下の変更操作が一切行えない状態を指します。まず、新しいプロパティをオブジェクトに追加することができません。次に、既存のプロパティを削除することも不可能です。さらに、既存のプロパティの値を変更したり、そのプロパティの属性(例えば、書き込み可能かどうか、設定可能かどうかなど)を変更したりすることもできなくなります。これにより、オブジェクトは完全に固定され、外部からの意図しない変更を防ぐことができます。
isFrozenメソッドは、検査したいオブジェクトを唯一の引数として受け取ります。そして、そのオブジェクトが凍結されていればtrueを、凍結されていない場合はfalseを返します。この機能は、特にデータの不変性を保証したい場合や、共有されるオブジェクトが誤って変更されるのを防ぎたい場合に非常に有用です。例えば、アプリケーションの設定情報や定数として扱いたいデータが、意図せず変更されていないかを確認する際に利用できます。
なお、Object.freeze()メソッドによる凍結は「浅い凍結」であるため、凍結されたオブジェクトのプロパティが別のオブジェクトである場合、そのネストされたオブジェクト自体は凍結されず、そのプロパティは変更可能なままである点にご注意ください。
構文(syntax)
1const myObject = { 2 propertyA: 10, 3 propertyB: "hello" 4}; 5 6console.log(Object.isFrozen(myObject)); 7 8Object.freeze(myObject); 9 10console.log(Object.isFrozen(myObject));
引数(parameters)
obj
- obj: object: 凍結されているかどうかを確認するオブジェクト
戻り値(return)
boolean
引数として渡されたオブジェクトがフリーズされている(プロパティの追加、削除、変更、およびプロパティ記述子の変更ができない状態になっている)場合は true を返します。そうでない場合は false を返します。