Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

224
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda