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

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

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 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