Javascript 在curry函数中保持状态

Javascript 在curry函数中保持状态,javascript,currying,Javascript,Currying,在编写curried函数时,有没有办法保持某种内部状态 例如,假设我想编写一个curried函数,该函数考虑了以前调用该函数的次数 也就是说,(3)(4)(5)=1*3+2*4+3*5=26 我的方法是添加一些计数器,每次返回新的curry函数时都会递增,但我找不到一个好方法来跟踪add函数中的参数 您可以使用另一个变量作为因子的闭包 函数(x){ 风险系数=1, 总和=因子*x; 函数f(y){ 因子++; 总和+=因子*y; 返回f; }; f、 toString=函数(){return

在编写curried函数时,有没有办法保持某种内部状态

例如,假设我想编写一个curried函数,该函数考虑了以前调用该函数的次数

也就是说,(3)(4)(5)=1*3+2*4+3*5=26


我的方法是添加一些计数器,每次返回新的curry函数时都会递增,但我找不到一个好方法来跟踪add函数中的参数

您可以使用另一个变量作为因子的闭包

函数(x){
风险系数=1,
总和=因子*x;
函数f(y){
因子++;
总和+=因子*y;
返回f;
}; 
f、 toString=函数(){return sum;};
返回f;
}

控制台日志(第(3)(4)(5)条)请注意,curry来自函数编程,函数范式试图避免状态,因为它可能会导致副作用。