A JavaScript Object.freeze () metódus lefagyaszt egy objektumot.
A lefagyott objektumot már nem lehet megváltoztatni. Egy tárgy fagyasztása megakadályozza:
- Új tulajdonságok hozzáadása az objektumhoz.
- Az objektumból eltávolítandó meglévő tulajdonságok.
- A meglévő tulajdonságok számbavételének, konfigurálhatóságának vagy írhatóságának módosítása.
- A meglévő objektumtulajdonságok és prototípus értékeinek megváltoztatása.
A freeze()
módszer szintaxisa :
Object.freeze(obj)
A freeze()
módszer statikus módszerként az Object
osztály nevét használja.
freeze () Paraméterek
A freeze()
módszer:
- obj - A megfagyni kívánt tárgy.
Fagyasztásból származó visszatérési érték ()
- A függvénynek átadott objektum.
Megjegyzések :
- A fagyasztott objektumok tulajdonságainak hozzáadásával vagy azokból való eltávolításával kapcsolatos kísérletek csendben vagy dobás nélkül kudarcot vallanak
TypeError
(főleg szigorú módban). - A lezárt objektumok
Object.seal()
meglévő tulajdonságait megváltoztathatják, miközbenObject.freeze()
a meglévő tulajdonságokat megváltoztathatatlanná teszik.
Példa: freeze () használata
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 ))
Kimenet
igaz igaz sáv undefined
Megjegyzés : Object.freeze(obj)
csak a obj
. Ha ezeknek a tulajdonságoknak az értéke maguk az objektumok, akkor ezek az objektumok nincsenek lefagyva, és a tulajdonság-összeadási, -eltávolítási vagy -érték-hozzárendelési műveletek célpontjai lehetnek.
Ajánlott olvasmány: JavaScript Object Seal ()