Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

126
Visualizações
¿Puedo clonar perfectamente cualquier objeto ordinario?

Quiero escribir una función cloneDeep que clone cualquier objeto JS. Hay dos problemas distintos aquí:

  1. Auto referencias.
  2. Objetos exóticos.

Quiero centrarme en esto último. Los objetos exóticos en ECMAScript se enumeran en esta sección: 10.4 Ranuras y métodos internos integrados de objetos exóticos . Allí, menciona objetos exóticos como cadenas, funciones enlazadas, matrices, etc. Específicamente, no menciona RegExp .

Entonces, mi expectativa era que dado que RegExp es un objeto ordinario, si copio todas sus propiedades (enumerables y no enumerables) y su prototipo, se comportará como el objeto RegExp de origen. Pero eso no es cierto: falla cuando intento acceder al getter regex.source diciendo explícitamente que no es un objeto RegExp .

Profundizando más, descubrí que existen algunas ranuras internas inaccesibles para el usuario en ECMAScript para que solo se pueda acceder a varios objetos a través de sus constructores.

Esto me lleva a creer que cualquiera de los dos es cierto:

  1. RegExp también es un objeto exótico de alguna manera.
  2. Es un objeto ordinario pero hay algún otro estado que no copié.

¿Cuál de estos es cierto? Porque no puedo envolver mi cabeza alrededor de un objeto ordinario con ranuras internas específicas de objetos.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Es un objeto ordinario con algún estado interno que no podrías copiar.

Ser un objeto exótico solo significa que tiene una implementación extraordinaria de los métodos internos, no que no tenga ranuras internas. Muchas funciones integradas, como el .source getter que describe, aún requieren que se las llame en un objeto con ranuras internas específicas.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda