En el proyecto, si desea sumar todos los parámetros de una función, puede tomar los siguientes métodos
function add () {
let args = [...arguments]; // arguments一个类数组对象
let sum = args.reduce((prev, next) => {
return prev + next;
});
return sum;
}
add(1,2,3,4,5); // 15
Si desea agregar (1) (2) para implementar la operación de suma como esta, ¿cómo se debe escribir la función? Después de que se ejecuta la función, debe devolver una función, porque () es una función que se ejecuta, por lo que la resolverá así:
function add(x) {
return function (y) {
return x + y;
}
}
add(1)(2); // 3
Pero si la función tiene muchos parámetros o es incierta, si desea que la función se anide para su ejecución no es realista, entonces podemos resolver este problema con otro método, poner todos los parámetros en una matriz En, se utiliza el método toString para sumar, que realiza el currizado de la función.
function add() {
var _args = [...arguments];
var _adder = function() {
_args.push(...arguments);
return _adder;
}
_adder.toString = function() {
return _args.reduce((prev, next) => {
return prev + next;
});
}
return _adder;
}
console.log(add(1, 2, 3, 4, 5)); // 15
console.log(add(1)(2)); // 3
console.log(add(1)(2, 3)); // 6