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

317
Views
Llame a la variable privada desde el nombre de la variable como cadena en nodejs

Estoy trabajando con el proyecto NodeJS y me gustaría acceder a una variable privada desde su nombre de cadena, el ejemplo que muestro no es mi proyecto sino un ejemplo básico que demuestra lo que quiero hacer.
Probé opciones como

this.#[VariableContainingVarName] = ":D"
esto.[#VariableContainingVarName] = ":D"

Pero ninguno de estos funcionó, sé que esta es una solicitud extraña, pero no hay problema de seguridad con lo que estoy haciendo, porque filtro en un bucle antes de intentar atribuir cualquier dato a mi variable.

 class Fun { this.#accessible = ":D"; set coolFunc(varName) { console.log(this.#accessible); this.~~HOW TO CALL IT HERE~~ = "D:" console.log(this.#accessible); } } var funny = new Fun(); funny.coolFunc("accessible");

Rendimiento esperado:
:D
D:

----Actualizar----
Por lo que algunas personas sugirieron justo debajo, esta no es una solución que funcione, quiero que estas variables sean privadas. Resultado obtenido con el siguiente { '#name': 'Button1', '#x': 32, '#y': 32 }

Para ser más claro, tengo como 80 variables, no se llaman a la fuerza cuando se llama al controlador y TODAS son privadas. Dejo que el usuario agregue sus variables con, por ejemplo

 new Fun({ var1: "val", var1: "val2"... });

Luego, mi constructor llama a una función que buscará cada clave y su valor para asegurarse de que esté permitido, y automáticamente atribuirá a la variable privada el valor que ingresó el usuario. Ejemplo de dicha función:

 // yes it is private for a reason too #apply(configAttrib) { for (const [confElemKey, confElemValue] of Object.entries(configAttrib)) { switch (confElemKey) { case 'name': if (typeof(confElemValue) !== 'string') throw Error(`Setting ${confElemKey} is expected to be of type 'string'. Got type ${typeof(confElemValue)}.`); break; } // I want to attribute confElemValue to confElemKey here } }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

me gustaría acceder a una variable privada desde su nombre de cadena

Esto no es posible. La única forma de acceder a los campos de una clase privada es a través de la notación de puntos ( obj.#privateField ) y la parte #privateField siempre se evalúa literalmente.

Dado que no está proporcionando mucha información específica, tal vez una posible solución sería almacenar un objeto en un campo privado y acceder a las propiedades de esos objetos de forma dinámica:

 class Fun { #data = {accessible: ":D"}; coolFunc(varName) { console.log(this.#data.accessible); this.#data[varName] = "D:" console.log(this.#data.accessible); } } var funny = new Fun(); funny.coolFunc("accessible");

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!