Введение
В этом лабе мы будем изучать концепцию каррирования в JavaScript. Каррирование - это техника, которая позволяет нам преобразовать функцию, которая принимает несколько аргументов, в последовательность функций, каждая из которых принимает только один аргумент. С помощью этого лабара вы глубже поймете, как работает каррирование и как его можно применить в своем коде на JavaScript.
Это Guided Lab, который предоставляет пошаговые инструкции, чтобы помочь вам учиться и практиковаться. Внимательно следуйте инструкциям, чтобы выполнить каждый шаг и получить практический опыт. Исторические данные показывают, что это лабораторная работа уровня начальный с процентом завершения 100%. Он получил 100% положительных отзывов от учащихся.
Каррирование функции
Для каррирования функции следуйте шагам:
- Откройте Терминал/SSH и введите
node, чтобы начать практиковаться в написании кода. - Используйте рекурсию.
- Проверьте, достаточно ли количества переданных аргументов (
args). - Если да, вызовите переданную функцию
fn. - Если нет, используйте
Function.prototype.bind(), чтобы вернуть каррированную функциюfn, которая ожидает оставшихся аргументов. - Если вы хотите каррировать функцию, которая принимает переменное количество аргументов (вариадическую функцию, например,
Math.min()), вы можете необязательно передать количество аргументов второму параметруarity. - Используйте следующий код:
const curry = (fn, arity = fn.length, ...args) =>
arity <= args.length ? fn(...args) : curry.bind(null, fn, arity, ...args);
Вот несколько примеров:
curry(Math.pow)(2)(10); // 1024
curry(Math.min, 3)(10)(50)(2); // 2
Резюме
Поздравляем! Вы завершили лабу по каррированию функции. Вы можете практиковаться в других лабах в LabEx, чтобы улучшить свои навыки.