Object.freeze() 方法

在這篇文章中,我們將介紹 JavaScript 中 Object 物件的 freeze() 方法。 JavaScript 的 Object.freeze() 方法接受一個物件作為參數,並返回相同的物件。傳遞給該方法的物件會被改變,並變成不可變的物件。新的屬性無法添加,現有的屬性無法被刪除或更改。 示例: const dog = {} dog.breed = 'Siberian Husky' const myDog = Object.freeze(dog) Object.isFrozen(dog) //true Object.isFrozen(myDog) //true dog === myDog //true dog.name = 'Roger' //TypeError: Cannot add property name, object is not extensible 在這個示例中,dog 和 myDog 都被凍結了。傳遞給 Object.freeze() 的參數被改變後無法恢復。同時,該方法也返回相同的物件,因此 dog === myDog (它們是同一個物件)。 調用 Object.freeze() 方法等同於調用 Object.preventExtensions() 方法,用於防止物件添加更多屬性,並且將所有屬性設置為不可配置和不可寫。

Object的isFrozen()方法

瞭解JavaScript Object物件的isFrozen()方法的全部資訊。 接收一個物件作為參數,如果該物件被凍結則返回true,否則返回false。當物件是Object.freeze()函數的返回值時,該物件就被凍結了。 範例: const dog = {} dog.breed = 'Siberian Husky' const myDog = Object.freeze(dog) Object.isFrozen(dog) // true Object.isFrozen(myDog) // true dog === myDog // true 在這個範例中,dog和myDog都是被凍結的。傳遞給Object.freeze()的參數被改變,並且無法解凍。它也作為結果返回,因此dog === myDog(它們是同一個完全相同的物件)。