Viki

Viki 写东西的地方

努力上进且优秀
x
github
email
bilibili

オブジェクトのメソッド:`freeze` vs `seal` vs `preventExtensions`

私たちが JavaScript の世界に足を踏み入れると、freezesealpreventExtensionsという 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 による編集。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。