JavaScript/Object/isFrozen
< JavaScript | Object
Object.isFrozen() は、指定されたオブジェクトが凍結されているかどうかを判定するメソッドです。このメソッドは、オブジェクトが完全に変更不可能な状態(プロパティの追加・削除・変更が不可能な状態)かどうかを確認します[1]。
構文
編集Object.isFrozen(obj)
obj: 凍結されているかどうかを判定する対象のオブジェクト。
例
編集オブジェクトが凍結されているかどうかを判定するプログラム
編集以下のプログラムは、Object.isFrozen() を使用してオブジェクトが凍結されているかどうかを判定します。
const obj = {}; console.log(Object.isFrozen(obj)); // false Object.freeze(obj); console.log(Object.isFrozen(obj)); // true
このプログラムでは、Object.isFrozen() を使用して obj オブジェクトが凍結されているかどうかを判定しています。最初は obj は凍結されていないため false が返されますが、Object.freeze() を使用して凍結した後は true が返されます。
シールされたオブジェクトが凍結されているかどうかを判定するプログラム
編集以下のプログラムは、Object.isFrozen() を使用してシールされたオブジェクトが凍結されているかどうかを判定します。
const obj = {}; Object.seal(obj); console.log(Object.isFrozen(obj)); // false
このプログラムでは、Object.isFrozen() を使用してシールされた obj オブジェクトが凍結されているかどうかを判定しています。シールされただけのオブジェクトは完全に変更不可能ではないため、false が返されます。
注意点
編集- 凍結状態: デフォルトでは、すべてのオブジェクトは凍結されていません。
- 凍結の条件: オブジェクトが凍結されているとは、そのオブジェクトが拡張不可で、すべてのプロパティが設定不可で、すべてのデータプロパティが書き込み不可である状態を指します。
- 非オブジェクト: 非オブジェクト(例:
nullやundefined)を指定すると、TypeErrorが発生します。
脚註
編集- ^ これは、オブジェクトが凍結されているかどうかを判定するために使用されます。
外部リンク
編集