Partial application
Leg enkele argumenten vast en hergebruik functies.
Partial application is een gratis JavaScript Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject JavaScript Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus JavaScript Academy bevat in totaal 4 lessen.
Wat is partiële toepassing?
Partiële toepassing betekent dat je een functie die meerdere argumenten nodig heeft, vooraf enkele van die argumenten geeft. Het resultaat is een nieuwe functie die alleen de overige argumenten nodig heeft.
Zo kun je gespecialiseerde functies opbouwen vanuit algemene functies. Een algemene functie multiply(a, b) kan een gespecialiseerde functie double(b) worden door a = 2 vast te leggen.
Een functie met veel argumenten
Begin met een algemeen bruikbare functie. add neemt hier drie getallen. Vaak roep je deze steeds opnieuw aan met hetzelfde eerste argument.
function add(a, b, c) {
return a + b + c;
}
console.log(add(1, 2, 3));
console.log(add(1, 10, 100));Argumenten handmatig vastleggen
De eenvoudigste vorm van partiële toepassing is een wrapperfunctie die één argument vastlegt en de overige argumenten doorgeeft.
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));Partiële toepassing met bind
Function.prototype.bind is hiervoor bedoeld. Het eerste argument stelt this in; elk daaropvolgend argument wordt vanaf links vooraf ingevuld.
Geef null door voor this als de waarde daarvan je niet uitmaakt.
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));Meer dan één argument vastleggen
Je kunt meerdere voorloopargumenten tegelijk vastleggen. De teruggegeven functie neemt de argumenten die overblijven.
function add(a, b, c) {
return a + b + c;
}
const addElevenAndTwo = add.bind(null, 11, 2);
console.log(addElevenAndTwo(7));
console.log(addElevenAndTwo(100));Een herbruikbare partial-hulpfunctie
Je kunt zelf een partial-hulpfunctie schrijven die vooraf ingestelde argumenten met de restparameter vastlegt en ze met de latere argumenten samenvoegt via 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'));Algemene functies specialiseren
Partiële toepassing komt goed tot zijn recht wanneer één algemene functie veel kleine, leesbare specialisaties oplevert.
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));Partiële toepassing met arrays
Gespecialiseerde functies lezen duidelijk binnen arraymethoden zoals map.
function power(exponent, base) {
return Math.pow(base, exponent);
}
const square = power.bind(null, 2);
console.log([1, 2, 3, 4].map(square));Configuratie vooraf invullen
Een veelvoorkomende toepassing uit de praktijk is het vastleggen van een configuratiewaarde, zoals een belastingtarief of een valutasymbool, en het resultaat daarna overal opnieuw gebruiken.
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));Partiële toepassing tegenover standaardparameters
Standaardparameters bieden een terugvalwaarde wanneer een argument ontbreekt. Bij partiële toepassing leg je een waarde vast, zodat de aanroeper deze voor die positie niet meer kan wijzigen.
Ze lossen verschillende problemen op: standaardwaarden zijn optioneel, partiële toepassingen liggen vast.
function log(level, message) {
return '[' + level + '] ' + message;
}
const error = log.bind(null, 'ERROR');
console.log(error('Disk full'));
console.log(error('Timeout'));Waarom partiële toepassing belangrijk is
Partiële toepassing vermindert herhaling, maakt de bedoeling duidelijker en vormt de basis voor currying. Als je steeds hetzelfde eerste argument doorgeeft, kun je overwegen het één keer vast te leggen.
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));Korte controle
Wat geeft fn.bind(null, 5) terug?
Samenvatting: partiële toepassing
Je hebt geleerd hoe je argumenten vooraf vastlegt:
- Handmatige wrappers leggen een argument vast en geven de rest door.
- bind(null, ...args) vult argumenten vanaf links vooraf in.
- Een aangepaste
partial-hulpfunctie gebruikt rest en spread. - Partiële toepassing maakt duidelijke, herbruikbare specialisaties en bereidt je voor op currying.
Leer JavaScript met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 59
- Lessen
- 200
Veelgestelde vragen
Is de les “Partial application” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad JavaScript Academy, waaronder “Partial application”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus JavaScript Academy bevat in totaal 4 lessen.
Wat leer ik in “Partial application”?
Leg enkele argumenten vast en hergebruik functies. Je oefent met JavaScript Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met JavaScript Academy te beginnen?
Ervaring vooraf is niet nodig. JavaScript Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Partial application”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over JavaScript Academy?
Ja. Elke les over JavaScript Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Partial application
- Functies curryen
- Functiecompositie
- pipe en compose bouwen