This commit is contained in:
Ilya Kantor 2014-11-16 01:40:20 +03:00
parent 962caebbb7
commit 87bf53d076
1825 changed files with 94929 additions and 0 deletions

View file

@ -0,0 +1,23 @@
Решение состоит в том, чтобы каждый раз возвращать текущий объект. Это делается добавлением `return this` в конце каждого метода:
```js
//+ run
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
```

View file

@ -0,0 +1,38 @@
# Цепочка вызовов
[importance 2]
Есть объект "лестница" ladder:
```js
var ladder = {
step: 0,
up: function() { // вверх по лестнице
this.step++;
},
down: function() { // вниз по лестнице
this.step--;
},
showStep: function() { // вывести текущую ступеньку
alert(this.step);
}
};
```
Сейчас, если нужно последовательно вызвать несколько методов объекта, это можно сделать так:
```js
ladder.up();
ladder.up();
ladder.down();
ladder.showStep(); // 1
```
Модифицируйте код методов объекта, чтобы вызовы можно было делать цепочкой, вот так:
```js
ladder.up().up().down().up().down().showStep(); // 1
```
Такой подход называется "чейнинг" (chaining) и используется, например, во фреймворке jQuery.