JavaScript Object.freeze () -metoden fryser ett objekt.
Ett fruset objekt kan inte längre ändras. Frysning av ett objekt förhindrar:
- Nya egenskaper läggs till i objektet.
- Befintliga egenskaper som ska tas bort från objektet.
- Ändra befintliga fastigheters uppräkning, konfigurerbarhet eller skrivbarhet.
- Ändra värden på befintliga objektegenskaper och prototyp.
Syntaxen för freeze()
metoden är:
Object.freeze(obj)
Den freeze()
metod, som är en statisk metod, kallas med hjälp av Object
klassnamnet.
frysa () Parametrar
Den freeze()
metod tar in:
- obj - Objektet att frysa.
Returvärde från frysning ()
- Objektet som skickades till funktionen.
Anmärkningar :
- Alla försök att lägga till eller ta bort från egenskaper uppsättning av frysta objekt misslyckas antingen tyst eller kastar
TypeError
(oftast i strikt läge). - Objekt förseglade med
Object.seal()
kan ändra deras befintliga egenskaper samtidigt somObject.freeze()
de befintliga egenskaperna ändras.
Exempel: Använda frysa ()
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
true true bar odefinierad
Obs : Object.freeze(obj)
gäller endast de omedelbara egenskaperna för obj
. Om värdet på dessa egenskaper är objekt i sig är dessa objekt inte frusna och kan vara målet för tillägg, borttagning eller omfördelning av fastigheter.
Rekommenderad läsning: JavaScript-objektförsegling ()