Funktioner är hjärtat av JavaScript. Tidigare var de bundna till användningen av funktionen-nyckelordet, men ES6 introducerar en ny och mer elegant skrivstil med så kallade pil-funktioner. Denna nya syntax gör din kod inte bara kortare, utan löser också vissa problem som är kopplade till detta-sammanhanget. I denna handledning kommer du att lära dig allt du behöver veta om pilfunktioner.
Viktigaste insikter
- Pilfunktioner erbjuder en kortare syntax jämfört med traditionella funktioner.
- De har ingen egen detta-kontext, vilket gör dem särskilt praktiska för användning i återuppringningsfunktioner.
- Borttagning av måsvingar och return-uttrycket blir möjligt när funktionen endast returnerar en uttryck.
Introduktion till pilfunktioner
Pilfunktioner används vanligtvis för att göra koden läsbar och mer kompakt. Istället för att skriva function kan du använda den nya syntaxen för att deklarera funktionen kortare.
För att förstå vad pilfunktioner är kan du använda de traditionella funktionerna som utgångspunkt. När du deklarerar en funktion med function-nyckelordet är den oftast lite längre och mindre elegant. Här är ett exempel på en standardfunktion i JavaScript:
Detta är grunden som vi går vidare från till pilfunktioner.
Steg 1: Deklarera en pilfunktion
I stället för att använda function-nyckelordet kan du enkelt sätta parametrarna inom parenteser och sedan använda en pil följt av funktionskroppen. Så här ser den tidigare funktionen ut som en pilfunktion:
Som du ser är syntaxen mycket mer kompakt. Efter första försöket kan du kontrollera om funktionen fungerar korrekt.
Steg 2: Användning av pilfunktioner med Array
En annan stor fördel med pilfunktioner visar sig när de används med Array. För att ge ett exempel, anta att du har en array av nummer och vill hitta positionen för ett visst nummer. Här använder vi findIndex-metoden för att hitta indexet:
Pilfunktionen förenklar avsevärt läsbarheten av koden och minskar behovet av ett extra function-nyckelord.
Steg 3: Förkorta pilfunktioner
Om en pilfunktion bara har ett uttryck kan du utesluta mängden klammerparenteser och return-nyckelordet. Så här ser det ut när vi ytterligare förkortar findIndex-funktionen:
Detta är inte bara kortare, utan också mer elegant. Du kan testa funktionen och se till att den fortfarande fungerar korrekt.
Steg 4: Hantera this-nyckelord
En mycket viktig fördel med pilfunktioner är hanteringen av detta-sammanhanget. I klassiska funktioner blir detta ofta oväntat, särskilt när funktionen används som återuppringning. Pilfunktioner binder däremot detta till sammanhanget där de har definierats.
Titta på följande exempel:
obj.print(); // Skriver ut "Text"
Om du dock använder setTimeout med en vanlig funktion ändras kontextet för this:
Genom att använda en pilfunktion inuti setTimeout får du samma resultat som med den klassiska funktionen, utan att förlora sammanhanget:
Steg 5: Behålla tilldelningen av detta
Du kan också binda this till en variabel för att säkerställa att du kan komma åt den. Denna mall är emellertid ofta mindre elegant än att använda pilfunktioner.
Fördelar med Pilarfunktioner
- De är kortare och mer eleganta jämfört med vanlig funktionsdeklaration.
- De har ingen egen this-kontext, vilket förenklar användningen i callback-funktioner.
- Syntaxen tillåter dig att göra koden betydligt läsbarare.
Sammanfattning
Pilarfunktioner erbjuder ett praktiskt sätt att effektivt deklarera JavaScript-funktioner. Den nya syntaxen förbättrar inte bara läsbarheten, utan förenklar också hanteringen av this-kontexten avsevärt. Du bör använda pilarfunktioner främst när du behöver callback-funktioner eller kortare funktionsuttryck.
Vanliga frågor
Vad är Pilarfunktioner?Pilarfunktioner är en kortare syntax för funktioner i JavaScript som infördes med ES6.
När ska jag använda Pilarfunktioner?Använd pilarfunktioner främst i callback-scenarier eller när du behöver anonyma funktioner.
Vilka fördelar har Pilarfunktioner med avseende på this-kontext?Pilarfunktioner binder this till den omgivande kontexten, vilket ofta förhindrar oväntat beteende hos vanliga funktioner.