我试图解决一个难题,该难题需要'n'个参数然后计算总和。
find $1 -type f -name '*.jpeg' -o -name '*.jpg' -o -name '*.gif' -o -name '*.GIF' -o -name '*.PNG' | xargs -n 1 -I {} convert {} -set filename:base '%i' '%[basename]' '%[filename:base].png'
问题:使用上面示例中的相同逻辑,我正在尝试这样做:
如果我想做类似的事情
sum(1)(2)(3)=>应该为6
如果我做sum(1)=>应该输出1
sum(1)(2)=>应该输出3等等
这是我尝试过的:
function add(arg1) {
let total=arg1;
const func = function(...args){
if(!args[0]) return total;
total += args[0];
return func;
}
return func;
}
console.log(add(1)(2)(3)()); // => Should output 6
答案 0 :(得分:1)
说明:
Proxy:Proxy对象用于定义基本操作的自定义行为。在javascript中,您几乎可以为每个操作创建陷阱
function sum2(n) {
sum = n;
const adhoc = new Proxy(function a () {}, {
get (obj, key) {
return () => sum;
},
apply (receiver, ...args) {
sum += args[1][0];
return adhoc;
},
});
return adhoc
}
console.log(sum2(1));
console.log(sum2(1)(2));
console.log(sum2(1)(2)(3));