Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Переменные в скрипте (https://javascript.ru/forum/dom-window/49879-peremennye-v-skripte.html)

vvkk 01.09.2014 21:36

Переменные в скрипте
 
В скрипте есть переменные. Именно переменные а не свойства обекта Window. Как узнать какие есть переменные в скрипте?

MallSerg 01.09.2014 22:51

Любой JS код выполняется в определенном контексте у каждого контекста есть свой скоп переменных скопы могут быть вложенными.
От текущего контекста зависит текущий скоп а следовательно текущие переменные. Получить скоп из JS невозможно зато его видно в отладчике
Я не думаю что эта информация тебе сильно поможет =).
https://www.google.ru/webhp?sourceid...Script%20scope

vvkk 02.09.2014 10:30

Как работает код в JS я знаю. Есть тот кто сможет обьяснить как получить переменные в скрипте?

Aetae 02.09.2014 10:36

Брутфорсом. Или .toString(), а потом распарсить javascript парсером написанным на javascript.(если погуглить - наверняка и такое извращение найдётся.) Или глазами посмотреть в код.
В данной операции нет никакого практического смысла и языком она не предусмотрена.

kostyanet 02.09.2014 11:30

Глазами смотрят код и юзают увиденные переменные. Это когда под Greasemonley пишешь какого-нить грабителя - так все и происходит. Потому что если даже какие-то переменные найти - что это даст если вы не знаете заранее к чему они вообще там созданы.

MallSerg 02.09.2014 13:50

Писец
Цитата:

у: Получить скоп невозможно
Цитата:

x: Как работает я знаю
x: Как получить переменные в скрипте?

vvkk 02.09.2014 14:50

В ранних версиях Firefox получить скоп можно. Почемы вы решили что я хочу получить эти переменные именно через скоп?

MallSerg 02.09.2014 15:30

Наверно открою великую тайну из начала любого учебника по JavaScript
но переменные в JS хранятся только в объектах и ни где кроме объектов.
Если на объект нет ссылки то он удаляется сборщиком мусора.

т.е. специально для тех кто знает:
1. var создает переменную в текущем скопе и нигде более
2. объект где хранятся переменные называется скопом
3. любое обращение к переменной объявленной через var это поиск ее в текущем скопе а затем в вышестоящих скопах

как только удаляется ссылка на скоп скоп удаляется из памяти вместе со всеми переменными
Ссылка на скоп вызывает(называется) замыкание.

vvkk 02.09.2014 16:20

Почему вы решили что я хочу получить эти переменные именно через скоп?
Мне не нужны значения этих переменных. Мне нужно определить существуют ли они или нет.

Aetae 02.09.2014 18:00

Это противоречит тому что написано выше.
Проверяются они, очевидно, так typeof someVar !== 'undefined';


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