Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Глобальные переменные в JS (https://javascript.ru/forum/misc/60582-globalnye-peremennye-v-js.html)

Vlasenko Fedor 08.01.2016 23:10

document и все элементы это объекты.
Вот прямо в них и пишем
document.addEventListener("click", function(e) {
      this.clickCounter = this.clickCounter++ || 1;
      document.getElementById('my').innerHTML = this.clickCounter ;
     alert(document.clickCounter);
  });

mrbanan 08.01.2016 23:35

Цитата:

приведите, плз, пример общего хранилища
Ну массив вероятно может быть таким общим хранилищем, а так, глобальные переменные доступны отовсюду

Keramet 09.01.2016 01:08

Цитата:

Сообщение от Poznakomlus (Сообщение 403025)
document и все элементы это объекты.
Вот прямо в них и пишем
document.addEventListener("click", function(e) {
      this.clickCounter = this.clickCounter++ || 1;
      document.getElementById('my').innerHTML = this.clickCounter ;
     alert(document.clickCounter);
  });

так тут clickCounter - глобальная переменная, а ТС хотел уйти от глобальности

Keramet 09.01.2016 01:09

Цитата:

Сообщение от mrbanan (Сообщение 403028)
Ну массив вероятно может быть таким общим хранилищем, а так, глобальные переменные доступны отовсюду

массив или объект, не важно.. интересно увидеть "глобальное хранилище"

Safort 09.01.2016 06:33

Цитата:

Сообщение от Keramet (Сообщение 403041)
массив или объект, не важно.. интересно увидеть "глобальное хранилище"

В простом варианте это обычный объект доступный глобально.

ruslan_mart 09.01.2016 08:14

Цитата:

Сообщение от mrbanan
А если она мне в других местах понадобится а не только в этой функции? Тогда сделать return ClickCounter ? Но тогда она наверное вновь станет глобальной ))

Обернуть все скрипты в одну общую самовызывающуюся функцию и не будет проблем.

(function(window, document) {


     //...



})(window, document);

Keramet 09.01.2016 11:46

Цитата:

Сообщение от Safort (Сообщение 403056)
В простом варианте это обычный объект доступный глобально.

Так ТС же вроде хотел избавиться от глобальной переменной

Safort 09.01.2016 12:54

Keramet,
совсем без глобальных переменных не получится. А данный способ поможет сильно сократить их количество.


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