Javascript не разрешает доступ к именам переменных. Вы просто не можете получить имя переменной из фактического значения переменной надежным способом, и вы не должны это делать в первую очередь. Однако, если вам действительно нужно по какой-то необъяснимой причине и вы используете браузер javascript, вы можете просто просканировать объект окна (обратите внимание, что это будет работать, только если ваша переменная не является примитивом).
function getVarName(variable) {
for (let key in window) {
if (window[key] == variable) {
return key;
}
}
return null;
}
var var1 = {};
foobar = {};
let var2 = {};
const var3 = {};
console.log(getVarName(var1)); // var1
console.log(getVarName(foobar)); // foobar
console.log(getVarName(var2)); // null
console.log(getVarName(var3)); //null
Обратите внимание, что последние два не работают, потому что это хак, который никоим образом не гарантированно работает.
РЕДАКТИРОВАТЬ: Это также работает в узле, если вы используете global
вместо window
, но последние два примера, которые я продемонстрировал, все равно не будут работать.