en.javascript.info/1-js/6-objects-more/1-object-methods/8-chain-calls/task.md
2015-04-01 19:08:41 +03:00

1.1 KiB

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

[importance 2]

Есть объект "лестница" 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

Как видно, такая запись содержит "меньше букв" и может быть более наглядной.

Такой подход называется "чейнинг" (chaining) и используется, например, во фреймворке jQuery.