Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Хранение переменной (https://javascript.ru/forum/css-html/48243-khranenie-peremennojj.html)

Кос 26.06.2014 14:52

Хранение значения переменной между событиями
 
Добрый день!

Подскажите почему так получается:

<p id='test'>test</p>

<script>
var a = 0 ;
$('#test').click(function(){a += 1; alert(a});
</script>

При каждом нажатии на <p> alert будет выводить a увеличенное на единицу. Для меня это стало открытием) я всегда думал что при срабатывании событий весь скрипт работает заново, т.е. заново устанавливается занчение а = 0, и при каждом нажатии на <p> alert будет выводить "1".

Т.е. получается что все переменные хранятся до обновления странцы. Где можно прочитать об этом подробнее?

WorM32 26.06.2014 16:30

http://learn.javascript.ru/closures#...еменным

krasovsky 27.06.2014 10:05

Не весь скрипт а вся функция, ты имеешь ввиду.
Но ведь переменная а у тебя за пределами функции. Ты ее изменяешь и выводишь алертом.
Если бы ты делал так
a = 0 ;//это глобальная переменная
$('#test').click(function(){var myvar =a + 1; alert(a});//'этот код отрабатывает заново при каждом срабатывании

В таком случае результат будет всегда равен 1,пока ты ее не изменишь.


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