コンテンツにスキップ

JavaScript/Object/isFrozen

出典: フリー教科書『ウィキブックス(Wikibooks)』

Object.isFrozen() は、指定されたオブジェクトが凍結されているかどうかを判定するメソッドです。このメソッドは、オブジェクトが完全に変更不可能な状態(プロパティの追加・削除・変更が不可能な状態)かどうかを確認します[1]

構文

[編集]
Object.isFrozen(obj)
  • obj: 凍結されているかどうかを判定する対象のオブジェクト。

[編集]

オブジェクトが凍結されているかどうかを判定するプログラム

[編集]

以下のプログラムは、Object.isFrozen() を使用してオブジェクトが凍結されているかどうかを判定します。

constobj={};console.log(Object.isFrozen(obj));// falseObject.freeze(obj);console.log(Object.isFrozen(obj));// true

このプログラムでは、Object.isFrozen() を使用して obj オブジェクトが凍結されているかどうかを判定しています。最初は obj は凍結されていないため false が返されますが、Object.freeze() を使用して凍結した後は true が返されます。

シールされたオブジェクトが凍結されているかどうかを判定するプログラム

[編集]

以下のプログラムは、Object.isFrozen() を使用してシールされたオブジェクトが凍結されているかどうかを判定します。

constobj={};Object.seal(obj);console.log(Object.isFrozen(obj));// false

このプログラムでは、Object.isFrozen() を使用してシールされた obj オブジェクトが凍結されているかどうかを判定しています。シールされただけのオブジェクトは完全に変更不可能ではないため、false が返されます。

注意点

[編集]
  • 凍結状態: デフォルトでは、すべてのオブジェクトは凍結されていません。
  • 凍結の条件: オブジェクトが凍結されているとは、そのオブジェクトが拡張不可で、すべてのプロパティが設定不可で、すべてのデータプロパティが書き込み不可である状態を指します。
  • 非オブジェクト: 非オブジェクト(例: nullundefined)を指定すると、TypeError が発生します。

脚註

[編集]
  1. ^これは、オブジェクトが凍結されているかどうかを判定するために使用されます。

外部リンク

[編集]


close