Каррирование — это продвинутая техника работы с функциями. Он используется не только в JavaScript, но и в других языках. Каррирование — это концепция разбиения функции со многими аргументами на множество функций с одним аргументом таким образом, чтобы вывод был одинаковым. Это метод упрощения многозначной аргументной функции до однозначных аргументных мультифункций. Таким образом, в основном f (a, b, c) функция многозначного аргумента превращается в (a) (b) (c ), которые являются многозначными функциями аргумента. Мы можем преобразовать функцию с несколькими аргументами в последовательность вложенных функций. Он возвращает новую функцию, которая ожидает, что следующий аргумент будет встроенным.
Каррирование — это преобразование функций, переводящее функцию из вызываемой как f(a, b, c) в вызываемую как f(a)(b)(c). Однако каррирование не вызывает функцию. Просто преображает.
Например, это функция без каррирования:
function sum (a, b, c){ return a + b + c } sum (1, 2, 3); //=6
Это та же функция, но в каррированном варианте. Поскольку функция теперь преобразована, мы называем ее по-другому.
function sum (a){ return (b) => { return (c) => { return a + b + c } } } console.log(sum(1)(2)(3)); //=6
Другими словами, когда функция вместо того, чтобы одновременно принимать все аргументы, берет первый и возвращает новую функцию, которая принимает второй и возвращает новую функцию, принимающую третий, и так далее, пока все аргументы не будут было выполнено. Он берет любую функцию и преобразует ее в серию вложенных функций 1-й арности.
Каррирование разбивает функции более высокого порядка на серию меньших каскадных функций, которые принимают один аргумент и возвращают функцию, за исключением последней каскадной функции, которая возвращает желаемое значение.
Зачем использовать каррирование?
- Это позволяет избежать повторной передачи одной и той же переменной.
- Поскольку при каррировании функции передаются в качестве аргументов другим функциям, вы в значительной степени создаете функцию более высокого порядка.
- Каррирование — это метод проверки, позволяющий убедиться, что вы получили все необходимое, прежде чем продолжить.
- Это поможет вам избежать повторной передачи одной и той же переменной.
- Он делит вашу функцию на несколько более мелких функций, которые могут выполнять одну обязанность. Это делает вашу функцию чистой и менее подверженной ошибкам и побочным эффектам.
- Это может быть личным предпочтением, но мне нравится, что это делает мой код читабельным.
Заключение
Каррирование — невероятно полезная техника из функционального JavaScript. Это процесс преобразования любой функции в ряд вложенных функций арности.
Каррирование позволяет создать библиотеку небольших, легко настраиваемых функций, которые ведут себя последовательно и быстро используются. Каррирование — это глубокая тема, и ее может быть сложно изучить, но немного попрактиковавшись, вы поймете, когда использовать лечение, чтобы сделать его более эффективным.