了解 JavaScript Object 物件的 seal() 方法
JavaScript 的 Object 物件的 seal() 方法接受一個物件作為參數,並回傳相同的物件。傳入的物件會被改變,並成為一個不接受新屬性的封閉物件。新的屬性無法添加,現有的屬性無法移除,但現有的屬性可以更改。
範例:
const dog = {}
dog.breed = 'Siberian Husky'
Object.seal(dog)
dog.breed = 'Pug'
dog.name = 'Roger' //TypeError: 無法添加屬性 name,物件不可擴展
傳入的參數也會作為回傳值,因此 dog
=== myDog
(它們是同一個物件)。
類似於 Object.freeze()
,但不會使屬性不可寫。它只是防止添加或移除屬性。
類似於 Object.preventExtensions()
,但也禁止移除屬性:
const dog = {}
dog.breed = 'Siberian Husky'
dog.name = 'Roger'
Object.seal(dog)
delete dog.name //TypeError: 無法刪除物件的 'name' 屬性