Переменные в скрипте
В скрипте есть переменные. Именно переменные а не свойства обекта Window. Как узнать какие есть переменные в скрипте?
|
Любой JS код выполняется в определенном контексте у каждого контекста есть свой скоп переменных скопы могут быть вложенными.
От текущего контекста зависит текущий скоп а следовательно текущие переменные. Получить скоп из JS невозможно зато его видно в отладчике Я не думаю что эта информация тебе сильно поможет =). https://www.google.ru/webhp?sourceid...Script%20scope |
Как работает код в JS я знаю. Есть тот кто сможет обьяснить как получить переменные в скрипте?
|
Брутфорсом. Или .toString(), а потом распарсить javascript парсером написанным на javascript.(если погуглить - наверняка и такое извращение найдётся.) Или глазами посмотреть в код.
В данной операции нет никакого практического смысла и языком она не предусмотрена. |
Глазами смотрят код и юзают увиденные переменные. Это когда под Greasemonley пишешь какого-нить грабителя - так все и происходит. Потому что если даже какие-то переменные найти - что это даст если вы не знаете заранее к чему они вообще там созданы.
|
Писец
Цитата:
Цитата:
|
В ранних версиях Firefox получить скоп можно. Почемы вы решили что я хочу получить эти переменные именно через скоп?
|
Наверно открою великую тайну из начала любого учебника по JavaScript
но переменные в JS хранятся только в объектах и ни где кроме объектов. Если на объект нет ссылки то он удаляется сборщиком мусора. т.е. специально для тех кто знает: 1. var создает переменную в текущем скопе и нигде более 2. объект где хранятся переменные называется скопом 3. любое обращение к переменной объявленной через var это поиск ее в текущем скопе а затем в вышестоящих скопах как только удаляется ссылка на скоп скоп удаляется из памяти вместе со всеми переменными Ссылка на скоп вызывает(называется) замыкание. |
Почему вы решили что я хочу получить эти переменные именно через скоп?
Мне не нужны значения этих переменных. Мне нужно определить существуют ли они или нет. |
Это противоречит тому что написано выше.
Проверяются они, очевидно, так typeof someVar !== 'undefined'; |
Часовой пояс GMT +3, время: 04:34. |