Глобальная переменная JS

Рейтинг: 0Ответов: 1Опубликовано: 16.03.2015

Есть такой код:

loadContent = {

  limitAjax: 0,

  start: function (btn) {
     console.log(this.limitAjax); // not equal 4
     // Ajax response
     this.limitAjax = response.limit; //  response.limit = 4
  }
}

Ajax возвращает новое значение лимит, которое назначается для this.limitAjax. Но при следующем вызове функции значение this.limitAjax по-прежнему = 0.

Делать переменную суперглобальное - не хочется...

Ответы

▲ 1

@Jony, вообще хотелось бы видеть, как вы вызываете функцию (и что такое this в ней), но в целом js-подход к статичным переменным подразумевает замыкания:

start: (function() {
    var limit = 0;
    return function () {
        // тело этой функции будет видеть limit, а весь остальной мир - нет
    };
})(),