備忘録的プログラミングリファレンス

freeze()、preventExtensions()、seal() メソッド

Object.freeze()Object.preventExtensions()Object.seal()

 freeze()、preventExtensions()、seal() は、Object の静的メソッドです。
 オブジェクトのすべてのプロパティの変更を禁止するためのメソッドです。

 freeze()、preventExtensions()、seal() メソッドについては以下を参照してください。

freeze()
プロパティの変更と削除を禁止に
preventExtensions()
プロパティの追加を禁止する
seal()
プロパティの削除とディスクリプタの変更を禁止

 これらのメソッドによって、プロパティのディスクリプタのフラグが変更されます。

 ディスクリプタには以下のプロパティがあります。

ディスクリプタ摘要
configurableプロパティの削除ができるか/否か。true の場合ディスクリプタが変更できる
enumerable配列として扱えるか( for...in など)
valueプロパティの値
writableプロパティが変更できるか/否か

 プロパティの追加の禁止については isExtensible() メソッドによって確かめることができます。

freeze()

Object.freeze()

 freeze() メソッドは、プロパティの値の変更と削除を禁止にする Object の静的メソッドです。
 オブジェクトのすべてのプロパティの値の変更と削除をできないようにします。

Object.freeze()
Object.freeze( example_obj );

詳しくはExampleを参照してください

 以下のようなディスクリプタ用のプロパティが false になります。

writable: false;
configurable: false;

 プロパティの値の変更と削除が禁止か/否かは isFrozen() メソッドによって確かめることができます。

ページ内 Index

Syntax

in JavaScript

  Object の静的メソッド freeze() にオブジェクト名を指定します。
 オブジェクトのすべてのプロパティは変更と削除が禁止になります。

Object.freeze( O );

引数(Parameter Values)

Value摘要
Oオブジェクト名

返り値(Return Values)

 引数で渡したオブジェクト。

Example

 freeze() の例です。このメソッドはプロパティの値の変更と削除を禁止します。
 プロパティの追加の禁止か/否かも確かめることができます。

preventExtensions()

Object.preventExtensions()

 preventExtensions() メソッドは、プロパティの追加を禁止する Object の静的メソッドです。
 プロパティの追加が禁止になっているかを確認するには isExtensible() メソッドによって確認できます。

Object.preventExtensions()
Object.preventExtensions( example_obj );

詳しくはExampleを参照してください

ページ内 Index

Syntax

in JavaScript

  Object の静的メソッド preventExtensions() にオブジェクト名を指定します。
 このメソッドによってオブジェクトへのプロパティの追加が禁止になります。

Object.preventExtensions( O );

引数(Parameter Values)

Value摘要
Oオブジェクト名

返り値(Return Values)

 引数で渡したオブジェクト。

Example

 preventExtensions() の例です。
 プロパティの追加を禁止します。isExtensible() メソッドによってそのことを確認しています。

seal()

Object.seal()

 seal() メソッドは、プロパティの削除とディスクリプタの変更を禁止する Object の静的メソッドです。

Object.seal()
Object.seal( example_obj );

詳しくはExampleを参照してください

 プロパティの削除が禁止されたか/否かは Object.isSealed() メソッドによって分かります。

 また、以下のようなディスクリプタ用のプロパティが false になります。

configurable: false;

ページ内 Index

Syntax

in JavaScript

  Object の静的メソッド seal() にオブジェクト名を指定します。

let obj_prm = Object.seal( O );

引数(Parameter Values)

Value摘要
Oオブジェクト名

返り値(Return Values)

 引数で指定したオブジェクトです。

Example

 isSealed() の例です。このメソッドの実行によってオブジェクトのプロパティの削除が禁止になります。