Получить свойство 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