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
partialpersonalizado 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
- Aplicação parcial
- Funções curry
- Composição de funções
- Criando pipe e compose