Рубрики
Без рубрики

Как использовать частичное приложение для улучшения вашего кода JavaScript

Риком Генри, как использовать частичное приложение, чтобы улучшить использование вашего JavaScript Использование этой функциональной техники, может сделать ваш код более элегантным функциям программирования, дает нам методы для решения проблем в нашем коде. Одно из них, частичное приложение, немного сложно понять, но это может позволить нам

Автор оригинала: FreeCodeCamp Community Member.

Рик Генри

Использование этой функциональной техники может сделать ваш код более элегантным

Функциональное программирование дает нам методы для решения проблем в нашем коде. Одним из них, частичное приложение, немного сложно понять, но он может позволить нам написать меньше (звучит интересно, верно?).

Что это?

Частичное приложение начинается с функции. Мы берем эту функцию и создаем новый с одним или несколькими его аргументами уже «настроен» или частично применяется Отказ Это звучит странно, но он уменьшит количество параметров, необходимых для наших функций.

Давайте дадим некоторое контекст, когда мы могли бы использовать частичное приложение:

const list = (lastJoin, ...items) => {  const commaSeparated = items.slice(0,-1).join(", ");  const lastItem = items.pop();  return `${commaSeparated} ${lastJoin} ${lastItem}`;}

Эта маленькая функция принимает одно слово, Lastjoin и произвольное количество Предметы Отказ Первоначально Список объявляет Скаппадочный Переменная. Эта переменная хранит запятую, разделяющую присоединенный массив всех элементов, кроме последнего. На следующей строке мы храним последний товар в Предметы в оформлении Фастем Переменная. Функция затем возвращает с помощью строкового шаблона.

Функция возвращает Предметы , как строка, в формате списка. Например:

list("and", "red", "green", "blue");     // "red, green and blue"list("with", "red", "green", "blue");    // "red, green with blue"list("or", "red", "green", "blue");      // "red, green or blue"

Наше Список Функция позволяет нам создавать списки, когда мы хотим. Каждый тип списка, который мы создаем », а«, «с», «или» – это специализация общего Список функция. Не было бы неплохо, если бы они могли быть своими функциями?!

Как использовать частичное приложение

Это то, где может помочь частичное приложение. Например, чтобы сделать listand Функция, мы «набор» (или частично применять ) Lastjoin аргумент быть “и”. Результатом выполнения этого означает, что мы можем вызвать нашу частично примененную функцию, как это:

listAnd("red", "green", "blue");    // "red, green and blue"

Мне тоже не нужно останавливаться. Мы можем сделать много специализированных функций по Частично применяя Аргумент в нашем списке функция:

listOr("red", "green", "blue");      // "red, green or blue"listWith("red", "green", "blue");    // "red, green with blue"

Для этого нам нужно создать Частичный вспомогательная функция:

const partial = (fn, firstArg) => {  return (...lastArgs) => {    return fn(firstArg, ...lastArgs);  }}

Эта функция занимает функцию FN Как первый параметр и stormag как второй. Он возвращает совершенно новую функцию с одним параметром, Lastargs Отказ Это собирает пропущенные в аргументах.

Теперь сделать наши listand Функция, которую мы вызываем Частичный прохождение в нашем Список функция И наш последний присоединение:

const listAnd = partial(list, "and");

Наше listand Функция теперь принимает только произвольный список предметов. Эта функция при вызове воли, в свою очередь, вызывают пропущенные в Список функция. Мы видим, что он будет передан »и« как первый аргумент и собранный Lastargs После этого.

Теперь мы создали частично прикладную функцию. Мы можем использовать эту специализированную функцию снова и снова в нашей программе:

listAnd("red", "green", "blue");    // "red, green and blue"

Принимать его дальше

Частичный Функция, которую мы создали, это проиллюстрировать, как работает частичное приложение. Есть несколько отличных функциональных библиотек JavaScript, которые имеют эту утилиту, такую как Ramda JS Отказ

Стоит отметить, что даже если вы новичок в частичном приложении, как концепция, есть каждый шанс, который вы использовали его. Если вы когда-либо использовали .bind () Способ по функции Это пример частичного применения. Это обычная практика, чтобы пройти это в связывание, чтобы установить его контекст. Под капотом он частично применяет это и возвращая новую функцию.

Оригинал: “https://www.freecodecamp.org/news/how-to-use-partial-application-to-improve-your-javascript-code-5af9ad877833/”