前言
在JavaScript中,方法链(Chaining Methods)是一种编程技术,允许你在一个表达式中连续调用多个方法。这通常通过让每个方法返回对象自身(this)来实现,从而可以在同一行上依次调用多个方法。
● 例如,如果我们想进行一系列操作,例如存款500,取款35,贷款1000,取款500;
ITshare.deposit(500).withraw(35).requestLoan(1000).withraw(500);
我们发现这样做是完全行不通的,我们需要再方法中返回自身来实现支持链式调用
class Account {
//公有字段(例子,实际与之前写法作用一样)
locale = navigator.language;
//私有字段
#movements = [];
#pin;
constructor(owner, currency, pin) {
//参数中不可以直接为私有字段
this.owner = owner;
this.currency = currency;
this.#pin = pin;
console.log(`欢迎来到你的账户,${owner}`);
}
//公共接口
getMovements() {
return this.#movements;
}
deposit(val) {
this.#movements.push(val);
return this; // 返回当前对象以支持链式调用
}
withraw(val) {
this.deposit(-val);
return this; // 返回当前对象以支持链式调用
}
requestLoan(val) {
if (this.#approveLoan(val)) {
this.deposit(val);
console.log('恭喜你!贷款成功');
}
return this; // 返回当前对象以支持链式调用
}
//私有方法
#approveLoan(val) {
return true;
}
}
const ITshare = new Account('ITshare', 'EUR', '21211');
ITshare.deposit(250);
ITshare.withraw(120);
ITshare.requestLoan(1000);
console.log(ITshare);
ITshare.deposit(500).withraw(35).requestLoan(1000).withraw(500);