Partiell applikasjon
Fastsett noen argumenter og bruk funksjoner på nytt.
Partiell applikasjon er en gratis leksjon i JavaScript Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i JavaScript Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i JavaScript Academy inneholder totalt 4 leksjoner.
Hva er partiell applikasjon
Partiell applikasjon betyr å ta en funksjon som trenger flere argumenter, og forhåndsutfylle noen av dem for å produsere en ny funksjon som bare trenger resten.
Dette lar deg bygge spesialiserte funksjoner fra generelle funksjoner. En generell multiply(a, b) kan bli til en spesialisert double(b) ved å fastsette a = 2.
En funksjon med mange argumenter
Start med en generell funksjon. Her tar add tre tall. Ofte kaller du den om igjen med det samme første argumentet.
function add(a, b, c) {
return a + b + c;
}
console.log(add(1, 2, 3));
console.log(add(1, 10, 100));Fastsette argumenter manuelt
Den enkleste formen for partiell applikasjon er en omslagsfunksjon som hardkoder ett argument og videresender resten.
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));Partiell applikasjon med bind
Function.prototype.bind er laget for dette. Det første argumentet angir this; alle argumentene etter dette blir forhåndsutfylt fra venstre.
Send inn null for this når verdien ikke er relevant.
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));Binde mer enn ett argument
Du kan fastsette flere innledende argumenter samtidig. Den returnerte funksjonen tar imot det som er igjen.
function add(a, b, c) {
return a + b + c;
}
const addElevenAndTwo = add.bind(null, 11, 2);
console.log(addElevenAndTwo(7));
console.log(addElevenAndTwo(100));En gjenbrukbar partial-hjelper
Du kan skrive din egen partial-hjelper som fanger opp forhåndsinnstilte argumenter med rest-parameteren og slår dem sammen med de senere argumentene ved hjelp av spread.
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'));Spesialisere generelle funksjoner
Partiell applikasjon er spesielt nyttig når én generell funksjon gir opphav til mange små og lettleste spesialiseringer.
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));Partiell applikasjon med arrayer
Spesialiserte funksjoner er lette å lese inne i array-metoder som map.
function power(exponent, base) {
return Math.pow(base, exponent);
}
const square = power.bind(null, 2);
console.log([1, 2, 3, 4].map(square));Forhåndsutfylle konfigurasjon
En vanlig praktisk bruk er å fastsette en konfigurasjonsverdi, for eksempel en skattesats eller et valutasymbol, og deretter gjenbruke resultatet overalt.
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));Partiell applikasjon kontra standardparametere
Standardparametere gir en reserveverdi når et argument mangler. Partiell applikasjon låser fast en verdi, slik at den som kaller funksjonen, ikke lenger kan endre den for denne plassen.
De løser ulike problemer: Standardverdier er valgfrie, mens partielle argumenter er fastsatt.
function log(level, message) {
return '[' + level + '] ' + message;
}
const error = log.bind(null, 'ERROR');
console.log(error('Disk full'));
console.log(error('Timeout'));Hvorfor partiell applikasjon er viktig
Partiell applikasjon reduserer gjentakelser, gjør hensikten tydelig og er grunnlaget for currying. Når du stadig sender inn det samme første argumentet, bør du vurdere å fastsette det én gang.
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));Hurtigsjekk
Hva returnerer fn.bind(null, 5)?
Oppsummering: Partiell applikasjon
Du har lært å fastsette argumenter på forhånd:
- Manuelle omslagsfunksjoner hardkoder et argument og videresender resten.
- bind(null, ...args) fyller ut argumenter på forhånd fra venstre.
- En egendefinert
partial-hjelper bruker rest og spread. - Partiell applikasjon lager tydelige, gjenbrukbare spesialiseringer og legger grunnlaget for currying.
Lær deg JavaScript med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 59
- Leksjoner
- 200
Ofte stilte spørsmål
Er leksjonen «Partiell applikasjon» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien JavaScript Academy, inkludert «Partiell applikasjon», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i JavaScript Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Partiell applikasjon»?
Fastsett noen argumenter og bruk funksjoner på nytt. Du øver på JavaScript Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med JavaScript Academy?
Ingen tidligere erfaring er nødvendig. JavaScript Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Partiell applikasjon»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne JavaScript Academy-leksjonen?
Ja. Alle JavaScript Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Partiell applikasjon
- Currying av funksjoner
- Funksjonssammensetning
- Bygge pipe og compose