Concatenazione
importanza: 2
Qui abbiamo un oggetto ladder
che ci consente di salire e scendere:
let ladder = {
step: 0,
up() {
this.step++;
},
down() {
this.step--;
},
showStep: function() { // shows the current step
alert( this.step );
}
};
Ora, se abbiamo bisogno di eseguire più chiamate in sequenza, possiamo:
ladder.up();
ladder.up();
ladder.down();
ladder.showStep(); // 1
ladder.down();
ladder.showStep(); // 0
Modificare il codice di up
, down
e showStep
per rendere le chiamate concatenabili, come in questo esempio:
ladder.up().up().down().showStep().down().showStep(); // shows 1 then 0
Questo approccio è largamente utilizzato dalle librerie JavaScript.
La soluzione sta nel ritornare l’oggetto stesso ad ogni chiamata.
let ladder = {
step: 0,
up() {
this.step++;
return this;
},
down() {
this.step--;
return this;
},
showStep() {
alert( this.step );
return this;
}
};
ladder.up().up().down().showStep().down().showStep(); // shows 1 then 0
Possiamo anche scrivere una singola chiamata per riga. Per catene molto lunghe diventa più leggibile:
ladder
.up()
.up()
.down()
.showStep() // 1
.down()
.showStep(); // 0