Determinar el nombre original de la variable después de pasarla a una función

Resuelto Andy Groff asked hace 14 años • 9 respuestas

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".

Andy Groff avatar Aug 04 '10 16:08 Andy Groff
Aceptado

Tienes razón, esto es prácticamente imposible de cualquier forma sensata, ya que solo el valor se pasa a la función.

deceze avatar Aug 04 '2010 09:08 deceze

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.

Offirmo avatar Sep 15 '2017 01:09 Offirmo