前言
在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);