Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.10.2012, 12:34
Профессор
Отправить личное сообщение для Почемучкин Посмотреть профиль Найти все сообщения от Почемучкин
 
Регистрация: 11.05.2011
Сообщений: 241

Можно ли по переменной как-то узнать ее имя?
Можно ли по переменной как-то узнать ее имя? То есть для переменной var2 получить строку "var2"
Нужно для дебаггинга.
Ответить с цитированием
  #2 (permalink)  
Старый 29.10.2012, 13:17
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

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

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

Последний раз редактировалось kobezzza, 29.10.2012 в 13:23.
Ответить с цитированием
  #3 (permalink)  
Старый 29.10.2012, 19:33
Профессор
Отправить личное сообщение для Почемучкин Посмотреть профиль Найти все сообщения от Почемучкин
 
Регистрация: 11.05.2011
Сообщений: 241

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

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

Вот интересно как еще можно извлечь имя переменной.
Ответить с цитированием
  #4 (permalink)  
Старый 20.12.2013, 12:17
Интересующийся
Отправить личное сообщение для yurik417 Посмотреть профиль Найти все сообщения от yurik417
 
Регистрация: 31.08.2011
Сообщений: 17

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

А так, первое что пришло в голову:
var a = 1;
try {
    a.ignoreThisMethod();
} catch (e) {
    alert(e.toString().split('.')[0].split(':')[1].trim());
}
Спасибо, то что надо
Ответить с цитированием
  #5 (permalink)  
Старый 20.12.2013, 14:34
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

kobezzza, классно придумано!
Ответить с цитированием
  #6 (permalink)  
Старый 20.12.2013, 16:20
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Почемучкин
Нужно для дебаггинга.
В отладчике же и без этого отлично просматривается все окружение, переменные и все все все. Мало чтоли?
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как можно доотправить форму Артем125 AJAX и COMET 1 23.11.2011 21:22
Как можно активировать/деактивировать функцию Решатель Элементы интерфейса 2 31.10.2011 10:38
Как можно совместить 2 "одинаковые javascript но разные внутри" в одну страницу?..ато rashid86 Элементы интерфейса 2 25.04.2011 22:49
Как можно узнать что value в INPUT изменилось? moskrc jQuery 2 22.10.2010 09:06
Подскажите как узнать существует ли объект в памяти? Yazla Общие вопросы Javascript 2 05.11.2009 20:05