Fallgropar vid metodextraktion och partiell tillämpning
Korrigera metodextraktion med call/apply/bind och lär dig små mönster för partiell tillämpning med bind och omslutande pilar.
Fallgropar vid metodextraktion och partiell tillämpning är en gratis lektion i JavaScript Academy på CoddyKit. Detta är lektion 2 av 3. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för JavaScript Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i JavaScript Academy innehåller totalt 3 lektioner.
Överblick
Mål: Behåll this stabilt efter extrahering och förfyll argument.
- call(thisArg, a, b)
- apply(thisArg, [a, b])
- bind(thisArg, a) → returnerar en ny funktion
- Partiell applicering med bind eller en liten pilfunktion

Fallgrop vid extrahering
Det fungerar att anropa som obj.method(), men när funktionen extraheras förloras objektet och this slutar fungera.
// Extraction loses this
const user = {
name: "Ayla",
label: function (prefix) {
return prefix + ":" + this.name;
}
};
console.log("method call:", user.label("Hi")); // "Hi:Ayla"
// Extract
const f = user.label;
console.log("extracted:", f("Hi")); // this is missing -> "Hi:undefined" (in strict mode this is undefined)

call/apply för engångsanrop
call och apply låter Er ange this för ett enda anrop.
// Fix by passing this explicitly using call/apply
console.log("call :", f.call(user, "Hi")); // "Hi:Ayla"
console.log("apply:", f.apply(user, ["Yo"])); // "Yo:Ayla"

bind för återanvändning
bind skapar en funktion som kommer ihåg this. Anropa den många gånger utan att binda om den.
// bind returns a new function with this fixed
const bound = f.bind(user);
console.log("bound once:", bound("Hey")); // "Hey:Ayla"
console.log("bound again:", bound("Yo")); // "Yo:Ayla"

Partiell applicering (enkelt)
Använd bind för att förfylla inledande argument, eller en liten pilfunktionsomslutning för att låsa värden och this.
// Partial application: pre-fill arguments
function add(a, b, c) { return a + b + c; }
// Using bind: pre-fill a=10
const add10 = add.bind(null, 10);
console.log("add10(1,2):", add10(1, 2)); // 13
// Using an arrow wrapper: pre-fill prefix
const labelHi = function (obj) {
return function () { return obj.label("Hi"); };
}(user);
console.log("arrow partial:", labelHi()); // "Hi:Ayla"

Praktiska mönster
Tips:
- Extraherade metoder: använd bind en gång och återanvänd resultatet.
- Engångsanrop: använd call/apply.
- Behöver Ni förfylla argument? Använd bind eller en liten pilfunktionsomslutning.
- Håll hjälp funktioner små och ge dem tydliga namn.

Quiz: bind jämfört med call/apply
Snabb kontroll: Bevara this och förfyll argument.

Sammanfattning
Sammanfattning: Vid extrahering förloras this. Använd call/apply för engångsanrop och bind för att låsa this och återanvända funktionen. För partiell applicering använder Ni bind eller en liten pilfunktion för att förfylla värden.

Lär dig JavaScript med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 59
- Lektioner
- 200
Vanliga frågor
Är lektionen ”Fallgropar vid metodextraktion och partiell tillämpning” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen JavaScript Academy, inklusive ”Fallgropar vid metodextraktion och partiell tillämpning”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i JavaScript Academy innehåller totalt 3 lektioner.
Vad lär jag mig i ”Fallgropar vid metodextraktion och partiell tillämpning”?
Korrigera metodextraktion med call/apply/bind och lär dig små mönster för partiell tillämpning med bind och omslutande pilar. Ni övar på JavaScript Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig JavaScript Academy?
Du behöver inga förkunskaper. Utbildningen i JavaScript Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 3.
Hur lång tid tar lektionen ”Fallgropar vid metodextraktion och partiell tillämpning”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här JavaScript Academy-lektionen?
Ja. Varje JavaScript Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Lexikalt och dynamiskt this, pilar på nytt
- Fallgropar vid metodextraktion och partiell tillämpning
- Funktionella alternativ — skicka kontext, closures och små hjälpfunktioner