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

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

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