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