Determinar el nombre original de la variable después de pasarla a una función
Tengo la sensación de que esto podría no ser posible, pero me gustaría determinar el nombre de la variable original de una variable que se pasó a una función en JavaScript. No sé cómo explicarlo mejor, así que veamos si este ejemplo tiene sentido.
function getVariableName(unknownVariable){
return unknownVariable.originalName;
}
getVariableName(foo); //returns string "foo";
getVariableName(bar); //returns string "bar";
Esto es para un complemento jquery en el que estoy trabajando y me gustaría poder mostrar el nombre de la variable que se pasa a una función de "depuración".
Aceptado
Tienes razón, esto es prácticamente imposible de cualquier forma sensata, ya que solo el valor se pasa a la función.
Esto ahora es posible de alguna manera gracias a ES6:
function getVariableName(unknownVariableInAHash){
return Object.keys(unknownVariableInAHash)[0]
}
const foo = 42
const bar = 'baz'
console.log(getVariableName({foo})) //returns string "foo"
console.log(getVariableName({bar})) //returns string "bar"
Expandir fragmento
El único (pequeño) inconveniente es que tienes que envolver tu variable desconocida entre {}
, lo cual no es gran cosa.