私たちが JavaScript の世界に足を踏み入れると、freeze
、seal
、preventExtensions
という 3 つの神秘な仲間に出会うことになります。これらはまるで私たちのオブジェクトを外部のダメージから守るお守りのような存在ですが、それぞれが異なる特徴を持っています!
Object.freeze()#
この方はまさに氷の魔術師です!Object.freeze()
を使用すると、オブジェクトは氷漬けのようになり、新しいプロパティの追加や既存のプロパティの書き込み可能性や設定可能性の変更、削除ができなくなります!まるでオブジェクトが氷河時代に入ったかのように、永遠に静止します。
Object.isFrozen
を使用して凍結されているかどうかを判断できます。
const icyObj = { chill: "frosty" };
Object.freeze(icyObj);
Object.seal()#
Object.seal()
は凍結よりもむしろ、オブジェクトに防弾チョッキを着せるようなものです。既存のプロパティの値は変更できますが、新しいプロパティの追加や既存のプロパティの削除はできません。まるでオブジェクトにぴったりとした服を着せて、外部のダメージから保護します。
Object.isSealed
を使用して封印されているかどうかを判断できます。
const bulletproofObj = { strong: true };
Object.seal(bulletproofObj);
Object.preventExtensions()#
Object.preventExtensions()
はちょっと寛容なお兄さんです。オブジェクトへの新しいプロパティの追加は阻止しますが、既存のプロパティの変更や削除はできます。まるでオブジェクトに境界線を引いて、「もう外に広がることはできないよ!」と伝えてくれます。
Object.isExtensible
を使用して拡張が阻止されているかどうかを判断できます。
const extendableObj = { flexible: true };
Object.preventExtensions(extendableObj);
これらのメソッドはマイナーですが、大切なオブジェクトを外部の破壊から守ることができます。寒い世界で厚い保護服を着せるように、これらを覚えておいてください!
ChatGPT による編集。