Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.01.2016, 20:57
Аспирант
Отправить личное сообщение для mrbanan Посмотреть профиль Найти все сообщения от mrbanan
 
Регистрация: 28.08.2015
Сообщений: 40

Глобальные переменные в JS
<div id="my"></div>

var ClickCounter = 0;

document.addEventListener("click", function(e) {
    ClickCounter++;
    document.getElementById('my').innerHTML = ClickCounter;
});

Говорят глобальные переменные это зло. Как в этом случае сделать не глобальной переменную ClickCounter?
Ответить с цитированием
  #2 (permalink)  
Старый 08.01.2016, 21:29
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Оберни это в анонимную функцию
(function() {
  var ClickCounter = 0;
 
  document.addEventListener("click", function(e) {
      ClickCounter++;
      document.getElementById('my').innerHTML = ClickCounter;
  });
})();
Ответить с цитированием
  #3 (permalink)  
Старый 08.01.2016, 21:43
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

Замыкание тебе в помощь
<!DOCTYPE html>
<html lang="ru">
  <head>
	<meta charset="UTF-8"/>
	<title>Glob</title>
	<script type="text/javascript">
		window.onload = function() {
			var ClickCounter = 0;
			
			document.addEventListener("click", function(e) {
				ClickCounter++;
				document.getElementById('my').innerHTML = ClickCounter;
			});
		};
	</script>
  </head>
  <body>
     <div id="my"></div>
  </body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 08.01.2016, 22:04
Аспирант
Отправить личное сообщение для mrbanan Посмотреть профиль Найти все сообщения от mrbanan
 
Регистрация: 28.08.2015
Сообщений: 40

А если она мне в других местах понадобится а не только в этой функции? Тогда сделать return ClickCounter ? Но тогда она наверное вновь станет глобальной ))
Ответить с цитированием
  #5 (permalink)  
Старый 08.01.2016, 22:19
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

Сообщение от mrbanan Посмотреть сообщение
А если она мне в других местах понадобится ...
кто "она"?
Ответить с цитированием
  #6 (permalink)  
Старый 08.01.2016, 22:27
Аспирант
Отправить личное сообщение для mrbanan Посмотреть профиль Найти все сообщения от mrbanan
 
Регистрация: 28.08.2015
Сообщений: 40

Цитата:
кто "она"
Переменная )) (она)
Ответить с цитированием
  #7 (permalink)  
Старый 08.01.2016, 22:28
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Сообщение от Keramet Посмотреть сообщение
кто "она"?
Очевидно, что переменная.
Ответить с цитированием
  #8 (permalink)  
Старый 08.01.2016, 22:29
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Сообщение от mrbanan Посмотреть сообщение
А если она мне в других местах понадобится а не только в этой функции? Тогда сделать return ClickCounter ? Но тогда она наверное вновь станет глобальной ))
Сохрани результат в какое-нибудь общее хранилище, которое доступно глобально и уже из него бери нужные данные.
Ответить с цитированием
  #9 (permalink)  
Старый 08.01.2016, 22:38
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

Сообщение от Safort Посмотреть сообщение
Очевидно, что переменная.
не очевидно. может "она" - функция?
Ответить с цитированием
  #10 (permalink)  
Старый 08.01.2016, 22:39
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

Сообщение от Safort Посмотреть сообщение
Сохрани результат в какое-нибудь общее хранилище, которое доступно глобально и уже из него бери нужные данные.
приведите, плз, пример общего хранилища
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вакансия JavaScript разработчик / JS / Frontend developer (Санкт-Петербург) Сергей Грачёв Работа 0 21.09.2015 12:31
Пример тестовых заданий на js junior elshaarawy Учебные материалы 3 26.03.2015 15:17
Глобальные переменные Гео_zen Общие вопросы Javascript 8 27.08.2012 15:30
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28