Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Можно ли по переменной как-то узнать ее имя? (https://javascript.ru/forum/misc/32750-mozhno-li-po-peremennojj-kak-uznat-ee-imya.html)

Почемучкин 29.10.2012 12:34

Можно ли по переменной как-то узнать ее имя?
 
Можно ли по переменной как-то узнать ее имя? То есть для переменной var2 получить строку "var2"
Нужно для дебаггинга.

kobezzza 29.10.2012 13:17

Глобальные переменные моно перебрать через свойство window, и например по значению узнать название. У именованных функций можно смотреть свойство name.

А так, первое что пришло в голову:
var a = 1;
try {
    a.ignoreThisMethod();
} catch (e) {
    alert(e.toString().split('.')[0].split(':')[1].trim());
}

Почемучкин 29.10.2012 19:33

kobezzza, Интересно придумано, но как это на практике приспособить ума не приложу.

Но во всяком случае теперь понятно, что Javascript-интерпретатор хранит где-то имена переменных - по крайней мере для отлавливания исключений в try/catch.

Вот интересно как еще можно извлечь имя переменной.

yurik417 20.12.2013 12:17

Цитата:

Сообщение от kobezzza (Сообщение 212836)
Глобальные переменные моно перебрать через свойство window, и например по значению узнать название. У именованных функций можно смотреть свойство name.

А так, первое что пришло в голову:
var a = 1;
try {
    a.ignoreThisMethod();
} catch (e) {
    alert(e.toString().split('.')[0].split(':')[1].trim());
}

Спасибо, то что надо

ruslan_mart 20.12.2013 14:34

kobezzza, классно придумано! :D

danik.js 20.12.2013 16:20

Цитата:

Сообщение от Почемучкин
Нужно для дебаггинга.

В отладчике же и без этого отлично просматривается все окружение, переменные и все все все. Мало чтоли?


Часовой пояс GMT +3, время: 10:15.