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

319
Visualizações
Call private variable from variable name as string in nodejs

i am working with NodeJS project and i would like to access a private variable from its string name, the example i show is not my project but a basic example demonstrating what i want to do.
I tried options such as

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

But none of theses worked, i know this is a weird request but there is no security issue with what i am doing, because i filter in a loop before trying to attribute any data to my 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");

Expected output:
:D
D:

----Update----
From what some people suggested just under, this is not a working solution, i want theses variables to be private. Result obtained with following { '#name': 'Button1', '#x': 32, '#y': 32 }

To be more clear i have like 80 variables, they are not forcably called when the controller is being called and they are ALL private. I let the user add their variables with for example

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

Then my constructor call a function that will look for each key and their value to make sure its allowed, and automaticly attribute to the private variable the value user entered. Example of the so said function:

// 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 Respostas
Responde à pergunta

0

i would like to access a private variable from its string name

This is not possible. The only way to access a private class fields is via dot notation (obj.#privateField) and the #privateField part is always evaluated literally.

Since you are not providing a lot of specific information, maybe a possible solution would be to store an object in a private field and access those object's properties dynamically:

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