Inverter Argumentos de Funções

Beginner

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

Introdução

Neste laboratório, exploraremos o conceito de inversão de argumentos de funções em JavaScript. Aprenderemos como receber uma função como argumento e reorganizar os argumentos de forma que o primeiro argumento se torne o último. Através deste exercício, obteremos uma melhor compreensão da desestruturação de argumentos, closures (fechamentos) e argumentos variádicos em JavaScript.

Reordenar Argumentos de Funções com Flip

Para trocar a ordem dos argumentos de uma função, use a função flip. Esta função recebe uma função como argumento e retorna uma nova função que troca o primeiro e o último argumentos.

Para implementar flip:

  • Use desestruturação de argumentos e um closure (fechamento) com argumentos variádicos.
  • Use o operador spread (...) para o primeiro argumento, tornando-o o último argumento antes de aplicar o restante.
const flip =
  (fn) =>
  (first, ...rest) =>
    fn(...rest, first);

Aqui está um exemplo de como usar flip para reordenar os argumentos de Object.assign:

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

// Criar uma nova função que troca os argumentos de Object.assign
const mergeFrom = flip(Object.assign);

// Criar uma nova função que vincula o primeiro argumento a a
let mergePerson = mergeFrom.bind(null, a);

// Chamar a nova função com b como o segundo argumento
mergePerson(b); // b agora é igual a a

// Alternativamente, mesclar a e b sem usar a nova função
b = {};
Object.assign(b, a); // b agora é igual a a

Resumo

Parabéns! Você concluiu o laboratório de Inversão de Argumentos de Funções. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.