Переворачивание аргументов функции

JavaScriptJavaScriptBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Переупорядочить аргументы функции с помощью flip

Для обмена порядком аргументов функции используйте функцию flip. Эта функция принимает функцию в качестве аргумента и возвращает новую функцию, которая меняет местами первый и последний аргументы.

Для реализации flip:

  • Используйте деструктуризацию аргументов и замыкание с вариативными аргументами.
  • Используйте оператор расширения (...), чтобы вставить первый аргумент в конец перед применением остальных.
const flip =
  (fn) =>
  (first, ...rest) =>
    fn(...rest, first);

Вот пример того, как использовать flip для переупорядочивания аргументов Object.assign:

let a = { name: "John Smith" };
let b = {};

// Создайте новую функцию, которая меняет местами аргументы Object.assign
const mergeFrom = flip(Object.assign);

// Создайте новую функцию, которая связывает первый аргумент с a
let mergePerson = mergeFrom.bind(null, a);

// Вызовите новую функцию с b в качестве второго аргумента
mergePerson(b); // Теперь b равно a

// Альтернативно, объедините a и b без использования новой функции
b = {};
Object.assign(b, a); // Теперь b равно a

Резюме

Поздравляем! Вы завершили практическое занятие по переворачиванию аргументов функции. Вы можете выполнить больше практических заданий в LabEx, чтобы улучшить свои навыки.