JavaScript Academy · Lektion

Partiel anvendelse

Fastlås nogle argumenter, og genbrug funktioner.

Lektion 1 af 413 trin

Partiel anvendelse er en gratis JavaScript Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i JavaScript Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. JavaScript Academy-kurset indeholder 4 lektioner i alt.

Hvad er partiel anvendelse

Partiel anvendelse betyder, at du tager en funktion, der kræver flere argumenter, og fastlægger nogle af dem på forhånd, så du får en ny funktion, der kun kræver resten.

Det giver dig mulighed for at bygge specialiserede funktioner ud fra generelle funktioner. En generisk multiply(a, b) kan blive til den specialiserede double(b) ved at fastlægge a = 2.

En funktion med mange argumenter

Begynd med en generel funktion. Her tager add tre tal. Ofte kalder du den igen og igen med det samme første argument.

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

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

Fastlæggelse af argumenter manuelt

Den enkleste form for partiel anvendelse er en omslagsfunktion, der fastlåser ét argument og videregiver 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));

Partiel anvendelse med bind

Function.prototype.bind er lavet til dette. Det første argument angiver this; hvert efterfølgende argument udfyldes på forhånd fra venstre.

Overfør null som this, når du er ligeglad med værdien.

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));

Binding af mere end ét argument

Du kan fastlægge flere indledende argumenter på én gang. Den returnerede funktion tager det, der er tilbage.

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 genanvendelig partial-hjælpefunktion

Du kan skrive din egen partial, der indfanger forudangivne argumenter med rest-parameteren og kombinerer dem med de senere argumenter ved hjælp af spread-syntaks.

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'));

Specialisering af generelle funktioner

Partiel anvendelse er særligt nyttig, når én generel funktion danner mange små, letlæselige specialiseringer.

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));

Partiel anvendelse med arrays

Specialiserede funktioner er lette at læse inde 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));

Forudfyldning af konfiguration

En almindelig anvendelse fra virkeligheden er at fastlægge en konfigurationsværdi, for eksempel en skattesats eller et valutasymbol, og derefter genbruge 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));

Partiel anvendelse kontra standardparametre

Standardparametre giver en reserveværdi, når et argument mangler. Partiel anvendelse fastlåser en værdi, så den kaldende kode ikke længere kan ændre den for den pågældende plads.

De løser forskellige problemer: Standardværdier er valgfrie, mens partielle anvendelser er faste.

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

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

Hvorfor partiel anvendelse er vigtig

Partiel anvendelse reducerer gentagelser, gør hensigten tydelig og danner grundlag for currying. Når du bliver ved med at overføre det samme første argument, bør du overveje at fastlægge 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));

Hurtig kontrol

Hvad returnerer fn.bind(null, 5)?

Opsamling: Partiel anvendelse

Du har lært at fastlægge argumenter på forhånd:

  • Manuelle omslagsfunktioner fastlåser et argument og videregiver resten.
  • bind(null, ...args) udfylder argumenter på forhånd fra venstre.
  • En brugerdefineret partial-hjælpefunktion bruger rest- og spread-syntaks.
  • Partiel anvendelse skaber tydelige, genanvendelige specialiseringer og baner vejen for currying.
Gratis at komme i gang

Lær JavaScript med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
59
Lektioner
200

Ofte stillede spørgsmål

Er lektionen “Partiel anvendelse” gratis?

Ja — alle 3 lektioner i læringssporet JavaScript Academy, inklusive “Partiel anvendelse”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. JavaScript Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Partiel anvendelse”?

Fastlås nogle argumenter, og genbrug funktioner. Du øver dig i JavaScript Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på JavaScript Academy?

Der kræves ingen tidligere erfaring. JavaScript Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Partiel anvendelse”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne JavaScript Academy-lektion?

Ja. Alle JavaScript Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Partiel anvendelse
  2. Currying af funktioner
  3. Funktionssammensætning
  4. Opbygning af pipe og compose
← Tilbage til JavaScript Academy