链式调用加减乘除
请设计一个计算器(Counter)类,它能使用加法、减法、乘法、除法的操作,并且有一个能获取结果(get)的方法,并通过可选链式调用而工作。
class Counter {
constructor(num) {
this.result = 0;
this.arr= []
}
add(num) {
this.arr.push(() => (this.result += num))
return this
}
sub(num) {
this.arr.push(() => (this.result -= num))
return this
}
mul(num) {
this.arr.unshift(() => (this.result *= num))
return this
}
div(num) {
this.arr.unshift(() => (this.result /= num))
return this
}
get() {
this.arr.forEach(fn => fn())
return this.result
}
}
const counter = new Counter();
console.log(counter.add(1).sub(2).mul(3).div(4).get());