I have a Function
in which I want to retrieve the name of the variable that was used to call the function. How can I do that?
let fooVar = 3; let barVar = "hello World"; function doStuff(variable) { let varName = ???; // retrieve name of variable return varName + ": " + variable; } document.write(doStuff(fooVar)); // should output "fooVar: 3" document.write(doStuff(barVar)); // should output "barVar: hello World"
If variable
was a Function
, I could use variable.name
.
I am aware of this, but it will only return "variable"
, not the name of the variable that was put into the function.
As an alternative: Is there a way to AUTOMATICALLY call a certain function whenever a variable is declared? If that was possible, I’d use the approach given in the link above to add the variable name to a map, then utilize that map inside the function to retrieve variable name.
Advertisement
Answer
That’s actually impossible to do, as a workaround you can do something like this
let fooVar = { name: 'fooVar', value: 3 }; let barVar = { name: 'barVar', value: 'Hello World' }; function doStuff({ name, value }) { let varName = name; // retrieve name of variable return varName + ": " + value; } console.log(doStuff(fooVar)); // should output "fooVar: 3" console.log(doStuff(barVar));
or you can do
let fooVar = 3; let barVar = 'Hello World'; function doStuff(variable) { const arr = Object.entries(variable)[0]; const [name, value] = arr; let varName = name; // retrieve name of variable return varName + ": " + value; } console.log(doStuff({ fooVar })); // should output "fooVar: 3" console.log(doStuff({ barVar }));