40 lines
506 B
Markdown
40 lines
506 B
Markdown
The solution is to return the object itself from every call.
|
|
|
|
```js run
|
|
let ladder = {
|
|
step: 0,
|
|
up() {
|
|
this.step++;
|
|
*!*
|
|
return this;
|
|
*/!*
|
|
},
|
|
down() {
|
|
this.step--;
|
|
*!*
|
|
return this;
|
|
*/!*
|
|
},
|
|
showStep() {
|
|
alert( this.step );
|
|
*!*
|
|
return this;
|
|
*/!*
|
|
}
|
|
}
|
|
|
|
ladder.up().up().down().up().down().showStep(); // 1
|
|
```
|
|
|
|
We also can write a single call per line. For long chains it's more readable:
|
|
|
|
```js
|
|
ladder
|
|
.up()
|
|
.up()
|
|
.down()
|
|
.up()
|
|
.down()
|
|
.showStep(); // 1
|
|
```
|
|
|