JavaScript Object.freeze () -menetelmä pysäyttää objektin.
Jäädytettyä esinettä ei voi enää muuttaa. Esineen jäätyminen estää:
- Uusia ominaisuuksia lisätään objektiin.
- Objektista poistettavat nykyiset ominaisuudet.
- Olemassa olevien ominaisuuksien luetteloitavuuden, konfiguroitavuuden tai kirjoitettavuuden muuttaminen.
- Olemassa olevien objektiominaisuuksien ja prototyypin arvojen muuttaminen.
Menetelmän syntaksi freeze()
on:
Object.freeze(obj)
freeze()
Menetelmä, joka on staattinen menetelmä, kutsutaan käyttää Object
luokan nimi.
jäädyttää () parametrit
freeze()
Menetelmä vie:
- obj - Jäädytettävä esine.
Palautusarvo jäädytyksestä ()
- Funktiolle välitetty objekti.
Huomautuksia :
- Kaikki yritykset lisätä tai poistaa jäädytettyjen esineiden ominaisuuksia epäonnistuvat joko äänettömästi tai heittää
TypeError
(enimmäkseen tiukassa tilassa). - Kohteilla, jotka on sinetöity,
Object.seal()
nykyisiä ominaisuuksia voidaan muuttaa samalla, kun neObject.freeze()
tekevät muuttamattomiksi.
Esimerkki: freeze () -toiminnon käyttäminen
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 ))
Tuotos
true true bar undefined
Huomaa : Object.freeze(obj)
koskee vain obj
. Jos näiden ominaisuuksien arvo on itse objekteja, nämä objektit eivät ole jäädytettyjä, ja ne voivat olla kohteiden lisäys-, poisto- tai arvonmääritysoperaatioiden kohde.
Suositeltava lukeminen: JavaScript Object seal ()