Js链式调用面试题
Js链式调用
需求:要求可以链式调用对象的方法,该对象有四个方法,加减乘除,一个get结果方法
eg:
counter.add(3).sub(1).get() // 2
方法一
通过Es6实现
class Counter {
private result = 0;
add(val: number) {
this.result += val;
return this;
}
sub(val: number) {
this.result -= val;
return this;
}
mul(val: number) {
this.result *= val;
return this;
}
div(val: number) {
this.result /= val;
return this;
}
get() {
return this.result;
}
}
方法二
通过对象实现
const obj = {
result: 0,
add: (val: number) => {
obj.result += val;
return obj;
},
sub: (val: number) => {
obj.result -= val;
return obj;
},
get: () => {
return obj.result;
},
};
这里提供两种思路,大家有什么好的方法可以评论区讨论一下
时间如白驹过隙,忽然而已,且行且珍惜......