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

230
Visualizações
¿Cómo ayudan los símbolos a evitar la colisión de nombres en el objeto en js?

Como el símbolo es un identificador único, nos ayuda a evitar sobrescribir la propiedad del mismo nombre en el objeto.

Como supongamos, hay un objeto llamado usuario que se usa en muchos programas diferentes.

 let user = { name : "ram", id : 5, };

Entonces, ahora, supongamos que este objeto de usuario se usa en otro programa (llamémoslo pro1), si queremos agregarle una propiedad llamada id, usaremos el símbolo id, así:

 let id = Symbol(); user[id] = 2;

Por lo tanto, la propiedad de identificación anterior no se sobrescribe en el objeto de usuario.

PERO AHORA SUPONEMOS,

Si el objeto de usuario ya tiene la propiedad de identificación del símbolo y se usa en otro programa que no ha definido la identificación del símbolo, entonces simplemente habrá un error ya que la identificación del símbolo no está definida.

Entonces mi pregunta es ¿cómo ayudan los símbolos a evitar colisiones de nombres en objetos en JavaScript?

Literalmente soy incapaz de comprender el concepto detrás de esto. Por favor, aclárelo.

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

0

Tomemos, por ejemplo, una aplicación que tiene algunos datos sobre álbumes y hace cosas con esos datos. (Advertencia: Todo lo que sigue está enormemente simplificado y altamente artificial).

Digamos que tenemos un módulo para "Compartir mi gusto musical con mis amigos" y "Pedir una canción" y ambos módulos quieren marcar la pista como procesada para que no termines con copias duplicadas o grites más a tus amigos. de una vez.

El módulo podría verse así:

 const processed = Symbol('processed'); function shareWithFriends(track) { if (track[processed]) { return }; /* do suff */ track[processed] = true; } export default shareWithFriends;

Entonces podrías:

 import shareWithFriends from './shareWithFriends.js'; import orderSong from './orderSong.js'; const song = { /* meta data */ }; shareWithFriends(song); orderSong(song);

Ambos módulos pueden modificar los metadatos sin leer por error el símbolo procesado de los otros módulos.

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