JavaScript Object.freeze () -metoden fryser et objekt.
Et frossent objekt kan ikke længere ændres. Frysning af et objekt forhindrer:
- Der tilføjes nye egenskaber til objektet.
- Eksisterende egenskaber, der skal fjernes fra objektet.
- Ændring af tællbarhed, konfigurerbarhed eller skrivbarhed af eksisterende ejendomme.
- Ændring af værdier for de eksisterende objektegenskaber og prototype.
Metodens syntaks freeze()
er:
Object.freeze(obj)
Den freeze()
metode, som er en statisk metode, der kaldes ved hjælp af Object
navnet klassen.
fryse () Parametre
Den freeze()
metode tager i:
- obj - Objektet at fryse.
Returneringsværdi fra fryse ()
- Objektet, der blev sendt til funktionen.
Bemærkninger :
- Ethvert forsøg på at tilføje eller fjerne fra egenskaber sæt frosne objekter mislykkes enten lydløst eller kaster
TypeError
(for det meste i streng tilstand). - Objekter forseglet med
Object.seal()
kan få ændret deres eksisterende egenskaber, mens de eksisterende egenskaber ikke kan ændresObject.freeze()
.
Eksempel: Brug af fryse ()
let obj = ( prop: function () (), foo: "bar", ); let o = Object.freeze(obj); console.log(o == obj); // True -> Returns the same object console.log(Object.isFrozen(obj)); // true // changes will fail silently obj.foo = "bar1"; console.log(obj.foo); // bar // does not add silently obj.new_foo = "bar"; console.log(obj.new_foo); // undefined // Following will also throw error // Object.setPrototypeOf(obj, ( x: 20 ))
Produktion
ægte sand bar udefineret
Bemærk : Object.freeze(obj)
gælder kun de umiddelbare egenskaber for obj
. Hvis værdien af disse egenskaber er objekter i sig selv, er disse objekter ikke frosne og kan være målet for egenskabstilføjelse, fjernelse eller omfordeling af værdier.
Anbefalet læsning: JavaScript-objektforsegling ()