【JavaScript ECMAScript】Object::Object.freeze静的メソッドの使い方
Object.freeze()静的メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
Object.freeze()メソッドは、指定されたオブジェクトを「凍結」し、そのオブジェクトの変更を不可能にするメソッドです。このメソッドが実行されると、対象のオブジェクトに対して、新しいプロパティの追加、既存プロパティの削除、プロパティの列挙可能性(enumerable)や書き込み可能性(writable)といったプロパティ記述子の変更ができなくなります。さらに、既存のプロパティの値を変更することもできなくなります。
これにより、一度設定したオブジェクトの状態が意図せず変更されるのを防ぎ、プログラムのデータ整合性を保つ上で非常に有効です。例えば、アプリケーション全体で使用される設定値や、定数として扱いたいデータ構造などに適用することで、誤った操作による予期せぬ挙動を未然に防ぐことができます。
Object.freeze()は、凍結されたオブジェクトそのものを返します。ただし、この凍結は「浅い凍結」であることに注意が必要です。つまり、オブジェクトの直下のプロパティは保護されますが、もしプロパティの値が別のオブジェクトであった場合、そのネストされたオブジェクト自体は凍結されません。そのため、ネストされたオブジェクトの内部状態は依然として変更可能であることに留意してください。このメソッドは、オブジェクトの不変性を保証したい場合に利用される、JavaScriptの強力な機能の一つです。
公式リファレンス: Object.freeze()
構文(syntax)
1Object.freeze(obj)
引数(parameters)
obj
- obj: object: 凍結するオブジェクト
戻り値(return)
Object
指定されたオブジェクトを不変(freeze)にした後の、そのオブジェクトそのものを返します。