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.



Contribuidores