JavaScript Object.freeze()

定義と使用方法

Object.freeze() オブジェクトに対する任何の変更を防ぐために使用されます。

非厳格モードでは、Object.freeze() メソッドは無音で失敗します。

厳格モードでは、Object.freeze() メソッドはTypeErrorをスローします。

凍結されたオブジェクトは読み取り専用です。属性の変更、追加、削除は許可されていません。

使用できます Object.isFrozen() オブジェクトが凍結されているかどうかを確認するメソッド。

関連するメソッド:

Object.preventExtensions() 属性の追加を阻止するが、変更は許可されます。

Object.seal() 変更を許可しますが、属性の追加と削除を阻止します。

Object.freeze() 属性の変更、追加、削除を阻止します。

Object.isExtensible() オブジェクトが拡張可能である場合、true を返します。

Object.isSealed() オブジェクトが密封されている場合、true を返します。

Object.isFrozen() オブジェクトが凍結されている場合、true を返します。

例 1

"use strict"
// オブジェクトの作成
const person = {
  firstName: "Bill",
  lastName: "Gates",
  age: 50,
  eyeColor: "blue"
};
// オブジェクトを凍結
Object.freeze(person);
// このようにエラーメッセージが表示されます:
person.age = 51;

自分で試してみる

例 2

const fruits = ["Banana", "Orange", "Apple", "Mango"];
Object.freeze(fruits);
// このようにエラーメッセージが表示されます:
fruits.push("Kiwi");

自分で試してみる

構文

Object.freeze(object)

パラメータ

パラメータ 説明
object 必要。凍結するオブジェクト。

返り値

タイプ 説明
Object 凍結されたオブジェクト。

ブラウザのサポート

Object.freeze() ECMAScript5 (ES5) の機能です。

2013年7月から、すべての現代ブラウザは完全に ES5(JavaScript 2009)をサポートしています:

Chrome Edge Firefox Safari Opera
Chrome 23 IE/Edge 11 Firefox 21 Safari 6 Opera 15
2012年9月 2012年9月 2013年4月 2012年7月 2013年7月