Tento koncept je důležitý ve funkcionálním programování, protože zajišťuje předvídatelnější chování funkcí a dat. Imutabilita znamená, že jakmile je primitivní datový typ nebo objekt vytvořen, nelze jej po té změnit. Pokud změnu provést chcete, musíte vytvořit nový objekt nebo hodnotu. Na první pohled to zní neefektivně, ale má to velké výhody, pokud jde o zjišťování změn.
Porovnávání změn dat
Vzhledem k povaze neměnných dat můžeme rychle zjistit, zda se dva objekty liší, pouhým porovnáním jejich referencí. Pokud se reference liší, pak se objekty liší. To je mnohem rychlejší způsob než hlouboké porovnávání všech vlastností objektu.
Předvídatelnost
Můžete si být jisti, že funkce, které pracují s neměnnými daty je nezmění, čímž by mohli ovlivnit jinou část programu. Tento přístup umožňuje psát kód, který je snadněji testovatelný a odolnější proti chybám.
V JavaScriptu lze imutabilitu docílit různými způsoby.
Od ES6 můžeme pro deklaraci proměnných používat const
.
Když chcete změnit hodnotu v imutabilním objektu, musíte vytvořit nový objekt, který má novou hodnotu.