Mantener los datos inmutables en JavaScript
Copia, no mutes — y sabe qué tan profundo llega la copia.
const state = {
lang: "javascript",
runs: [104, 98],
meta: { updated: "2026-07-30" },
};
const shallow = { ...state, runs: [...state.runs, 91] };
shallow.meta.updated = "changed"; // compartido con state
console.log(state.meta.updated, shallow.runs);
const deep = structuredClone(state);
deep.meta.updated = "isolated";
console.log(state.meta.updated, deep.meta.updated);
const frozen = Object.freeze({ nested: { a: 1 } });
frozen.nested.a = 2; // permitido: freeze es superficial
console.log(Object.isFrozen(frozen), frozen.nested.a);
Cómo funciona
- El spread y los métodos to* copian un nivel.
structuredClonecopia en profundidad, Maps y Dates incluidos.Object.freezefrena las escrituras, pero solo en el nivel superior.
Palabras clave y builtins usados aquí
Objectconst
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 538
- Tokens
- 147
- Ritmo de tres estrellas
- 110 tpm
Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 80 segundos.
Paso 4 de 4 en Objetos por dentro; paso 15 de 16 en Funciones y patrones.