|
|
|
почему не видны переменные в замыканиях
|
|||
|---|---|---|---|
|
#18+
Всем привет! Не пойму, почему я не вижу переменную v1 из f2, и v2 из f3? Это ведь замыкание чистой воды Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2013, 17:27 |
|
||
|
почему не видны переменные в замыканиях
|
|||
|---|---|---|---|
|
#18+
MaximuS_G, в какой строчке кода не видна переменная? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2013, 17:28 |
|
||
|
почему не видны переменные в замыканиях
|
|||
|---|---|---|---|
|
#18+
При входе в f2 и в f3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2013, 17:31 |
|
||
|
почему не видны переменные в замыканиях
|
|||
|---|---|---|---|
|
#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:36 |
|
||
|
почему не видны переменные в замыканиях
|
|||
|---|---|---|---|
|
#18+
Яростный Меч, спасибо большое за проверку! В общем переменных не видно именно в watch window, если эти переменные не используются внутри функции. То есть: Код: javascript 1. 2. 3. 4. Буду видеть в watch window только v1, а v2 undefined. Если и v2 как-то использовать в функции, то буду в watch window видеть оба. Видимо это связано с тем, что при вызове функции он не ищет в стеке вызовов переменные и не добавляет их в область видимости, если они не используются в функции, что логично. Удачи! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2013, 17:55 |
|
||
|
почему не видны переменные в замыканиях
|
|||
|---|---|---|---|
|
#18+
MaximuS_G, попробуй в Хроме (или в Яндекс-браузере) - всё норм. видно: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2013, 18:00 |
|
||
|
почему не видны переменные в замыканиях
|
|||
|---|---|---|---|
|
#18+
Яростный Меч, правильно. Убери строчку "alert(v1 + ' ' + v2)" и ты их уже не увидишь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2013, 18:03 |
|
||
|
почему не видны переменные в замыканиях
|
|||
|---|---|---|---|
|
#18+
MaximuS_GЯростный Меч, правильно. Убери строчку "alert(v1 + ' ' + v2)" и ты их уже не увидишь :)точно! а если оставить alert(v2); , то видна только v2. скорее всего, оптимизация, захватываются только те переменные, которые используются. щас вспоминаю, где-то об этом читал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2013, 18:08 |
|
||
|
почему не видны переменные в замыканиях
|
|||
|---|---|---|---|
|
#18+
ещё любопытный кейс - если сделать alert(eval('v2')); , то снова видны обе переменные. Оптимизатор видит eval и на всякий случай захватывает всё что есть, т.к. неизвестно, что понадобится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2013, 18:11 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=38317611&tid=1448163]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
174ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 485ms |

| 0 / 0 |
