Zincirleme
önem: 2
merdiven
objesi yukarı aşağı harekete izin vermektedir:
let merdiven = {
adim: 0,
yukari() {
this.adim++;
},
asagi() {
this.adim--;
},
adimiGoster: function() { // o anki adımı gösterir
alert( this.adim );
}
};
Eğer aşağıdaki gibi ard arda çağrı yapılırsa:
merdiven.yukari();
merdiven.yukari();
merdiven.asagi();
merdiven.adimiGoster(); // 1
yukari
ve asagi
metodlarını aşağıdaki gibi zincirleme yapılabilir hale getiriniz:
merdiven.yukari().yukari().asagi().adimiGoster(); // 1
Bu yaklaşım çoğu JavaScript kütüphanesinde yaygın olarak kullanılmaktadır.
Çözüm her metod çağrısı sonrası kendisini döndermektir.
let merdiven = {
adim: 0,
yukari() {
this.adim++;
return this;
},
asagi() {
this.adim--;
return this;
},
adimiGoster() {
alert( this.adim );
return this;
}
}
merdiven.yukari().yukari().asagi().yukari().asagi().adimiGoster();//1
Ayrıca her satır için tek çağrı da yazılabilir. Uzun zincirleme fonksiyonlar için bu daha okunabilirdir.
merdiven
.yukari()
.yukari()
.asagi()
.up()
.asagi()
.adimiGoster(); // 1
let merdiven = {
adim: 0,
yukari: function () {
this.adim++;
return this;
},
asagi: function () {
this.adim--;
return this;
},
adimiGoster: function () {
alert(this.adim);
}
};