زنجیرهای
اهمیت: 2
یک شیء ladder
وجود دارد که بالا و پایین رفتن را ممکن میکند:
let ladder = {
step: 0,
up() {
this.step++;
},
down() {
this.step--;
},
showStep: function() { // قدم کنونی را نشان میدهد
alert( this.step );
}
};
حال اگر ما نیاز داشته باشیم که برای چند بار متوالی صدا بزنیم، میتوانیم اینگونه این کار را انجام دهیم:
ladder.up();
ladder.up();
ladder.down();
ladder.showStep(); // 1
ladder.down();
ladder.showStep(); // 0
کد up
، down
و showStep
را تغییر دهید تا صدازدنها را زنجیرهای کنید، مثل این:
ladder.up().up().down().showStep().down().showStep(); // اول 1 را نشان میدهد سپس 0 را
چنین روشی در بین کتابخانههای جاوااسکریپت به طور گسترده استفاده میشود.
راه حل این است که خود شیء را با هربار صدازدن برگردانیم.
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(); // اول 1 را نشان میدهد و سپس 0 را
همچنین میتوانیم به ازای هر خط یک بار صدا بزنیم. برای زنجیرههای طولانی این روش خوانایی بیشتری دارد:
ladder
.up()
.up()
.down()
.showStep() // 1
.down()
.showStep(); // 0
let ladder = {
step: 0,
up: function() {
this.step++;
return this;
},
down: function() {
this.step--;
return this;
},
showStep: function() {
alert(this.step);
return this;
}
};