Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

227
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!