*Chaining* (merantaikan)
pentingnya: 2
Ada sebuah objek layaknya tangga (ladder
) yang dapat naik dan turun:
let ladder = {
step: 0,
up() {
this.step++;
},
down() {
this.step--;
},
showStep: function() { // menunjukkan langkah yang sekarang
alert( this.step );
}
};
Kini, jika kita perlu untuk membuat beberapa panggilan secara berurutan, bisa dilakukan dengan cara seperti ini:
ladder.up();
ladder.up();
ladder.down();
ladder.showStep(); // 1
Modifikasi kode up
, down
dan showStep
untuk membuat panggilan-panggilan tersebut dapat dirantaikan satu sama lain, seperti ini:
ladder.up().up().down().showStep(); // 1
Pendekatan demikian digunakan secara luas di banyak library JavaScript.
Solusinya adalah untuk mengembalikan objek itu sendiri dari setiap panggilan.
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
Kita juga bisa menuliskan sebuah panggilan di setiap baris. Untuk rantai kode yang panjang jadi lebih mudah dibaca seperti ini:
ladder
.up()
.up()
.down()
.up()
.down()
.showStep(); // 1