Tengo una Function en la que quiero recuperar el nombre de la variable que se usó para llamar a la función. ¿Cómo puedo hacer eso?
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" Si variable fuera una Function , podría usar variable.name .
Soy consciente de esto , pero solo devolverá "variable" , no el nombre de la variable que se puso en la función.
Como alternativa: ¿hay alguna manera de llamar AUTOMÁTICAMENTE a una determinada función cada vez que se declara una variable? Si eso fuera posible, usaría el enfoque proporcionado en el enlace anterior para agregar el nombre de la variable a un mapa, luego utilizaría ese mapa dentro de la función para recuperar el nombre de la variable.
Eso es realmente imposible de hacer, como solución puedes hacer algo como esto
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));o puedes hacer
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 }));