Structured clone
O algoritmo de Structured clone
é um mecanismo em JavaScript que pode ser usado para duplicar objetos complexos. É comumente usado ao invocar estruturadoClone() ou ao transferir dados entre Workers via postMessage(), armazenar objetos com IndexedDB ou copiar objetos para outras APIs.
Ao clonar um objeto, o algoritmo percorre recursivamente o objeto de entrada enquanto acompanha as referências visitadas anteriormente em um mapa para evitar ficar preso em loops infinitos.
O que não funciona com structured clone
- Objetos de função não podem ser duplicados pelo algoritmo de clone estruturado.
- Da mesma forma, a clonagem de DOM nodes gera uma exceção do tipo DataCloneError.
- Certas propriedades do objeto não são preservadas:
- A propriedade lastIndex dos objetos RegExp não é preservada.
- Descritores de propriedade, setters, getters e recursos similares semelhantes a metadados não são duplicados. Por exemplo, se um objeto estiver marcado como somente leitura com um descritor de propriedade, ele será lido/gravado na duplicata, pois esse é o padrão.
- A cadeia de protótipos não é percorrida ou duplicada.
Para mais informações sobre Structured clone visite MDN Web Docs.