Closed4
【JavaScript】preventExtensions / seal / freeze

Object.preventExtensions
オブジェクトを拡張不能にする。
const user = {
name: "shion",
age: 99,
};
Object.preventExtensions(user);
user.language = "ja"; // Uncaught TypeError: Cannot add property language, object is not extensible
ちなみに、拡張不能になっているかどうかを取得できる isExtensible
がある。
const r = Object.isExtensible(user);
console.log(r); // false

Object.seal
挙動は、preventExtensions と同様。
ただ、seal を使うと全てのプロパティの configurable が false になる。
こちらも、seal 状態になっているかどうかを取得できる isSealed
がある。

Object.freeze
挙動は、seal と同様。
ただ、seal を使うと全てのプロパティの wribale が false になる。
こちらも、freeze 状態になっているかどうかを取得できる isFrozen がある。

まとめ
preventExtensions < seal < freeze
このスクラップは2024/12/18にクローズされました