JavaScript · Intermediário · Inglês · Técnico
structuredClone
Função nativa que cria uma cópia profunda de um valor, preservando datas, Map, Set e referências circulares. Não copia funções nem métodos de classes.
Onde usar
Usada para copiar estado aninhado sem mexer no original, no lugar do truque JSON.parse(JSON.stringify(x)). Em code review, a troca evita perder datas e outros tipos.
Em código
const orig = { d: new Date(0), n: { x: 1 } };
const copia = structuredClone(orig);
copia.n.x = 99;
console.log(orig.n.x); // 1
console.log(copia.d instanceof Date); // trueExemplos
I replaced the JSON trick with structuredClone to keep the dates.
Troquei o truque do JSON por structuredClone para manter as datas.
structuredClone throws if the object has a function inside.
O structuredClone lança erro se o objeto tem uma função dentro.
Cuidado
Passar objetos com funções dentro, pois structuredClone lança DataCloneError.
Sinônimos
cópia profunda