0Pricing
JavaScript Academy · Aula

Aplicação parcial

Defina alguns argumentos e reutilize funções.

Aplicação parcial é uma aula grátis de JavaScript Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de JavaScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de JavaScript Academy inclui 4 aulas no total.

O que é aplicação parcial?

Aplicação parcial significa pegar uma função que precisa de vários argumentos e fixar alguns deles antecipadamente, produzindo uma nova função que precisa apenas dos restantes.

Isso permite criar funções especializadas a partir de funções gerais. Uma função genérica multiply(a, b) pode se tornar uma função especializada double(b) ao fixar a = 2.

Uma função com muitos argumentos

Comece com uma função de finalidade geral. Aqui, add recebe três números. Muitas vezes, você a chama repetidamente com o mesmo primeiro argumento.

function add(a, b, c) {
  return a + b + c;
}

console.log(add(1, 2, 3));
console.log(add(1, 10, 100));

Fixando argumentos manualmente

A forma mais simples de aplicação parcial é apenas uma função envoltória que fixa um argumento no código e encaminha os demais.

function add(a, b, c) {
  return a + b + c;
}

function addTen(b, c) {
  return add(10, b, c);
}

console.log(addTen(2, 3));
console.log(addTen(20, 30));

Aplicação parcial com bind

Function.prototype.bind foi criado para isso. Seu primeiro argumento define this; todos os argumentos seguintes são preenchidos previamente da esquerda para a direita.

Passe null para this quando ele não for relevante.

function add(a, b, c) {
  return a + b + c;
}

const addTen = add.bind(null, 10);

console.log(addTen(2, 3));
console.log(addTen(20, 30));

Vinculando mais de um argumento

Você pode fixar vários argumentos iniciais de uma só vez. A função retornada recebe tudo o que restar.

function add(a, b, c) {
  return a + b + c;
}

const addElevenAndTwo = add.bind(null, 11, 2);

console.log(addElevenAndTwo(7));
console.log(addElevenAndTwo(100));

Um auxiliar reutilizável de aplicação parcial

Você pode escrever seu próprio partial, que captura argumentos predefinidos com o parâmetro de argumentos restantes e os combina com os argumentos posteriores usando a expansão.

function partial(fn, ...preset) {
  return function (...later) {
    return fn(...preset, ...later);
  };
}

function greet(greeting, name) {
  return greeting + ', ' + name + '!';
}

const sayHello = partial(greet, 'Hello');
console.log(sayHello('Ada'));
console.log(sayHello('Linus'));

Especializando funções gerais

A aplicação parcial é especialmente útil quando uma função geral gera várias especializações pequenas e legíveis.

function multiply(a, b) {
  return a * b;
}

const double = multiply.bind(null, 2);
const triple = multiply.bind(null, 3);

console.log(double(5));
console.log(triple(5));

Aplicação parcial com matrizes

As funções especializadas ficam claras dentro de métodos de matriz, como map.

function power(exponent, base) {
  return Math.pow(base, exponent);
}

const square = power.bind(null, 2);

console.log([1, 2, 3, 4].map(square));

Preenchendo previamente a configuração

Um uso comum no mundo real é fixar um valor de configuração, como uma taxa de imposto ou um símbolo de moeda, e depois reutilizar o resultado em todos os lugares.

function format(symbol, amount) {
  return symbol + amount.toFixed(2);
}

const usd = format.bind(null, '$');
const eur = format.bind(null, '\u20AC');

console.log(usd(9.5));
console.log(eur(9.5));

Aplicação parcial versus parâmetros padrão

Os parâmetros padrão oferecem um valor alternativo quando um argumento está ausente. A aplicação parcial fixa um valor, portanto o chamador não pode mais alterá-lo para aquela posição.

Eles resolvem problemas diferentes: os valores padrão são opcionais; os parciais são fixos.

function log(level, message) {
  return '[' + level + '] ' + message;
}

const error = log.bind(null, 'ERROR');
console.log(error('Disk full'));
console.log(error('Timeout'));

Por que a aplicação parcial é importante

A aplicação parcial reduz a repetição, nomeia claramente a intenção e é a base da currificação. Sempre que você continuar passando o mesmo primeiro argumento, considere fixá-lo uma vez.

function between(min, max, value) {
  return value >= min && value <= max;
}

const isPercentage = between.bind(null, 0, 100);

console.log(isPercentage(50));
console.log(isPercentage(150));

Verificação rápida

O que fn.bind(null, 5) retorna?

Recapitulação: aplicação parcial

Você aprendeu a fixar argumentos antecipadamente:

  • Encapsuladores manuais fixam um argumento no código e encaminham os demais.
  • bind(null, ...args) preenche previamente os argumentos da esquerda para a direita.
  • Um auxiliar partial personalizado usa argumentos restantes e expansão.
  • A aplicação parcial cria especializações claras e reutilizáveis e prepara o caminho para a currificação.

Perguntas Frequentes

A aula “Aplicação parcial” é grátis?

Sim — o texto completo de “Aplicação parcial” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de JavaScript Academy, atualize para CoddyKit PRO. O curso de JavaScript Academy inclui 4 aulas no total.

O que vou aprender em “Aplicação parcial”?

Defina alguns argumentos e reutilize funções. Você pratica JavaScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar JavaScript Academy?

Nenhuma experiência prévia é necessária. JavaScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Aplicação parcial”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de JavaScript Academy?

Sim. Cada aula de JavaScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Aplicação parcial
  2. Funções curry
  3. Composição de funções
  4. Criando pipe e compose
← Voltar para JavaScript Academy