當我們涉足 JavaScript 的世界時,我們會遇到 freeze
、seal
和preventExtensions
這三個神秘的夥伴。它們就像保護我們的物件免受外界傷害的護身符,但它們之間可是各有不同!
Object.freeze()#
這位大爺可是徹頭徹尾的冰霜法師!一旦你使用了Object.freeze()
,你的物件就會像被冰封一樣,無法再添加新的屬性或修改已有屬性的可寫性、可配置性,更別提刪除屬性了!它就像是讓你的物件進入了冰河時代一般,永遠靜止不動。
可以用
Object.isFrozen
來判斷是否被freeze
了。
const icyObj = { chill: "frosty" };
Object.freeze(icyObj);
Object.seal()#
Object.seal()
比起凍結,更像是給你的物件套上了防彈衣。你仍然可以改變已有屬性的值,但是你無法添加新屬性,或者刪除已有屬性。這就像是給你的物件穿上了一件緊身衣,保護它免受外界的傷害。
可以用
Object.isSealed
來判斷是否被seal
了。
const bulletproofObj = { strong: true };
Object.seal(bulletproofObj);
Object.preventExtensions()#
哎呀,Object.preventExtensions()
這位大哥有點寬容,他只是阻止了你往物件裡加新屬性,但是你依然可以修改和刪除已有屬性。他就像是給你的物件畫了個邊界線,告訴你 “哥們,不能再往外擴張了哦!”
可以用
Object.isExtensible
來判斷是否被preventExtensions
了。
const extendableObj = { flexible: true };
Object.preventExtensions(extendableObj);
這些方法雖然冷門,但卻能保護你的寶貝物件免受外界的破壞,請記住它們,就像是在寒冷的世界中給你的物件穿上了厚厚的保護衣!
文章由 ChatGPT 潤色生成。