kembali ke pelajaran

*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.

Buka sandbox dengan tes.

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

Buka solusi dengan tes di sandbox.