función js curando la realización

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

Supongo que te gusta

Origin blog.csdn.net/qq_42671194/article/details/108665900
Recomendado
Clasificación