高阶函数和函数柯里化

1.什么是高阶函数和函数柯里化

        高阶函数是指可以接受一个或多个函数作为参数,并且/或者返回一个新函数的函数。换句话说,它可以操作其他函数,使得代码更加抽象和灵活。高阶函数的存在使得函数可以作为一等公民在代码中传递和使用。

        如下的函数就是一个高阶函数,他可以传入一个函数。并且使用展开运算符来接收对传入的参数并将参数传递给其他的函数。

function withLogging(fn) {
  return function(...args) {
    console.log('Calling function:', fn.name);
    return fn(...args);
  };
}

function add(a, b) {
  return a + b;
}

const loggedAdd = withLogging(add);
console.log(loggedAdd(2, 3)); // 输出:Calling function: add,返回:5

        函数柯里化是一种将接受多个参数的函数转化为一系列只接受单个参数的函数的过程。通过函数柯里化,我们可以将一个函数的多个参数转化为一系列的函数调用,每次只传递一个参数,直到所有参数都被传递完毕为止。这种转换使得函数更加灵活和可复用。

function add(a) {
  return function(b) {
    return a + b;
  };
}

const add5 = add(5);
console.log(add5(3)); // 输出:8

         其实在实际的开发过程中这种情况遇到的并不是很多,但是如果使用的React开发框架的话,往往在很多时候都要面临着这种情况。尤其是我们在react中给绑定函数传递参数时就需要使用这种解决方案。例如下面的这个函数,就可以通过上述的解决在绑定事件的DOM元素上获取传递过来的ID属性以及获取到对应的event的值。且也避免了绑定事件的回调函数为underfined的尴尬

        show = (id) =>{
            return (event)=>{
                console.log(event,id)
            }
        }

猜你喜欢

转载自blog.csdn.net/qq_51130780/article/details/131608199