
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
02.07.2013, 17:27
|
|||
|---|---|---|---|
почему не видны переменные в замыканиях |
|||
|
#18+
Всем привет! Не пойму, почему я не вижу переменную v1 из f2, и v2 из f3? Это ведь замыкание чистой воды Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.07.2013, 17:28
|
|||
|---|---|---|---|
|
|||
почему не видны переменные в замыканиях |
|||
|
#18+
MaximuS_G, в какой строчке кода не видна переменная? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.07.2013, 17:31
|
|||
|---|---|---|---|
почему не видны переменные в замыканиях |
|||
|
#18+
При входе в f2 и в f3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.07.2013, 17:36
|
|||
|---|---|---|---|
|
|||
почему не видны переменные в замыканиях |
|||
|
#18+
проверил, всё видно: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.07.2013, 17:55
|
|||
|---|---|---|---|
почему не видны переменные в замыканиях |
|||
|
#18+
Яростный Меч, спасибо большое за проверку! В общем переменных не видно именно в watch window, если эти переменные не используются внутри функции. То есть: Код: javascript 1. 2. 3. 4. Буду видеть в watch window только v1, а v2 undefined. Если и v2 как-то использовать в функции, то буду в watch window видеть оба. Видимо это связано с тем, что при вызове функции он не ищет в стеке вызовов переменные и не добавляет их в область видимости, если они не используются в функции, что логично. Удачи! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.07.2013, 18:00
|
|||
|---|---|---|---|
|
|||
почему не видны переменные в замыканиях |
|||
|
#18+
MaximuS_G, попробуй в Хроме (или в Яндекс-браузере) - всё норм. видно: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.07.2013, 18:03
|
|||
|---|---|---|---|
почему не видны переменные в замыканиях |
|||
|
#18+
Яростный Меч, правильно. Убери строчку "alert(v1 + ' ' + v2)" и ты их уже не увидишь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.07.2013, 18:08
|
|||
|---|---|---|---|
|
|||
почему не видны переменные в замыканиях |
|||
|
#18+
MaximuS_GЯростный Меч, правильно. Убери строчку "alert(v1 + ' ' + v2)" и ты их уже не увидишь :)точно! а если оставить alert(v2); , то видна только v2. скорее всего, оптимизация, захватываются только те переменные, которые используются. щас вспоминаю, где-то об этом читал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.07.2013, 18:11
|
|||
|---|---|---|---|
|
|||
почему не видны переменные в замыканиях |
|||
|
#18+
ещё любопытный кейс - если сделать alert(eval('v2')); , то снова видны обе переменные. Оптимизатор видит eval и на всякий случай захватывает всё что есть, т.к. неизвестно, что понадобится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=22&mobile=1&tid=1448163]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
173ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 466ms |

| 0 / 0 |
