Viki

Viki 写东西的地方

努力上进且优秀
x
github
email
bilibili

物件方法:`freeze` vs `seal` vs `preventExtensions` 翻譯:

當我們涉足 JavaScript 的世界時,我們會遇到 freezesealpreventExtensions這三個神秘的夥伴。它們就像保護我們的物件免受外界傷害的護身符,但它們之間可是各有不同!

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 潤色生成。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。