Получить свойство name переменной

Мне было интересно, возможно ли получить имя переменной в javascript или JQuery.

Предположим, что я объявляю переменную в JavaScript следующим образом:

var customerNr = "456910";

Если функция получает переменную, как я могу вернуть имя переменной?

Например:

function getNameOfVariable(someVariable){
     //return name of someVariable;
}

Если я вызываю эту функцию так:

getNameOfVariable(customerNr);

Функция должна возвращать строку, значение которой равно "customerNr".

Как я могу сделать это в jquery или javascript? Какое-то отражение?

2 ответа

Решение

Это просто невозможно!

Переданный параметр даже не должен иметь имени. Это может быть возвращаемое значение функции или необработанный литерал (например, "string" или же 3).

Нет, это невозможно. Для примитивных типов данных передаются только значения, а не ссылки, так как вы узнаете, что такое "имя" переменной? Например:

var customerNr="456910";
var customerNrAfterProcessing=customerNr;
getNameOfVariable(customerNrAfterProcessing);

Вернется ли это customerNrAfterProcessing или же customerNr?

Однако вы можете имитировать это поведение с объектами.

var variableName = someMethodThatDeterminesVariableNameOrJustAConstantIfYouPrefer();
var myVariables={};
var myVariables[variableName]={};
myVariables[variableName].value="456910";
myVariables[variableName].variableName=variableName;

function getNameOfVariable(someVariable){
    return someVariable.variableName;
}
getNameOfVariable(myVariables[variableName]);

Очевидно, что это намного больше работы, чем просто использование переменной variableName напрямую, но это может быть необходимо в некоторых более сложных ситуациях.

Смотрите работу с объектами в справочнике JS

Другие вопросы по тегам