Мастер-классы по Javascript Екатеринбург Ростов-на-Дону Москва Узнать больше...
Содержание (скрыть) Содержание (показать)

Цепочка вызовов

Есть объект «лестница» ladder:

var ladder = {
  step: 0,
  up: function() {  // вверх по лестнице
    this.step++;
  },
  down: function() {  // вниз по лестнице
    this.step--;
  },
  showStep: function() { // вывести текущую ступеньку
    alert(this.step);
  }
};

Сейчас работать с ним скучно:

ladder.up();
ladder.up();
ladder.down();
ladder.showStep(); // 1

Модифицируйте код, чтобы вызовы можно было делать цепочкой, вот так:

ladder.up().up().down().up().down().showStep();  // 1

Такой подход используется, например, во фреймворке jQuery.

Решение
Решение

Решение состоит в том, чтобы каждый раз возвращать текущий объект. Это делается добавлением return this в конце каждого метода:

var ladder = {
  step: 0,
  up: function() { 
    this.step++; 
    return this;
  },
  down: function() { 
    this.step--; 
    return this;
  },
  showStep: function() { 
    alert(this.step); 
    return this;
  }
}

ladder.up().up().down().up().down().showStep();  // 1

#196
Наверх

Реклама

Нашли опечатку?

Нашли опечатку на сайте? Что-то кажется странным?
Выделите соответствующий текст и нажмите Ctrl+Enter!

Последние Комментарии

Помоги другим!

Помоги другим узнать о хорошей статье!