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