Funkcie sú srdcom JavaScriptu. Kým boli v minulosti viazané na použitie kľúčového slova function, ES6 prináša novú a elegantejšiu syntax s tzv. Arrow funkciemi. Táto nová syntax nie len skracuje váš kód, ale aj rieši niektoré problémy spojené s kontextom this. V tejto príručke sa dozvieš všetko, čo potrebuješ vedieť o Arrow funkciiach.
Hlavné poznatky
- Arrow funkcie ponúkajú kratšiu syntax v porovnaní s tradičnými funkciami.
- Nemajú vlastný this kontext, čo ich robí veľmi praktickými pri použití v callback funkciami.
- Odstránenie slových zátvoriek a return príkazu je možné, ak funkcia vracia len jeden výraz.
Základy Arrow funkcií
Arrow funkcie sa zvyknú používať na zlepšenie čitateľnosti a skompaktovania kódu. Namiesto písania function môžete použiť novú syntax na deklaráciu funkcie.
Ak chcete pochopiť, čo sú Arrow funkcie, dobrým východiskom sú tradičné funkcie. Keď deklarujete funkciu s kľúčovým slovom function, býva zvyčajne dlhšia a menej elegantná. Tu je príklad štandardnej funkcie v JavaScripte:
To je východiskový bod, z ktorého sa presúvame k Arrow funkciám.
1. krok: Deklarácia Arrow funkcie
Namiesto kľúčového slova function jednoducho umiestnite parametre do zátvoriek a použite šípku, za ktorou nasleduje telo funkcie. Tu je príklad predchádzajúcej funkcie ako Arrow funkcie:
Ako vidíte, syntax je oveľa kompaktnejšia. Po prvýkrát môžete skontrolovať, či funkcia správne funguje.
2. krok: Používanie Arrow funkcií s poľom
Ďalšou veľkou výhodou Arrow funkcií je ich použite s poľami. Uvažujte o príklade. Predpokladajme, že máte pole čísel a chcete nájsť pozíciu určitého čísla. Tu používame metódu findIndex na nájdenie indexu:
Arrow funkcia výrazne zjednodušuje čitateľnosť kódu a znižuje potrebu ďalšieho kľúčového slova function.
3. krok: Skracovanie Arrow funkcií
Ak má Arrow funkcia iba jeden výraz, môžete vynechať slovné zátvorky a kľúčové slovo return. Takto to vyzerá, keď skrátite metódu findIndex ďalej:
Je to nielen kratšie, ale aj elegantnejšie. Môžete skontrolovať, či funkcia stále správne funguje.
4. krok: Správanie sa this kľúčového slova
Jedným z kľúčových výhod Arrow funkcií je manipulácia s kontextom this. V klasických funkciách je this často nepredvídateľné, najmä ak je funkcia použitá ako callback. Arrow funkcie však this priväzujú ku kontextu, v ktorom boli definované.
Pozrite sa na nasledujúci príklad:
obj.print(); // Vypíše "Text"
Ak však použijete setTimeout s tradičnou funkciou, zmení sa kontext this:
Použitím Arrow funkcie v rámci setTimeout získate rovnaký výsledok ako s klasickou funkciou, bez stratenia kontextu:
5. krok: Zachovanie priraďovanie this
Môžete tiež priviazať this na premennú, aby ste mali prístup k nej. Toto zvyčajne nie je tak elegante ako použitie Arrow funkcií.
Výhody Arrow funkcii
- Sú kratšie a elegantejšie v porovnaní s tradičným deklarováním funkcií.
- Nemajú vlastný this kontext, čo zjednodušuje ich použitie v callback funkciách.
- Syntax umožňuje výrazne zlepšiť čitateľnosť kódu.
Zhrnutie
Arrow funkcie ponúkajú praktický spôsob efektívneho deklarovania JavaScript funkcií. Nový syntax nielen zlepšuje čitateľnosť, ale aj výrazne zjednodušuje manipuláciu s this kontextom. Arrow funkcie by si mal(a) používať najmä v prípade callback funkcií alebo krátkych funkčných výrazov.
Často kladené otázky
Čo sú Arrow funkcie?Arrow funkcie sú kratší syntax pre funkcie v jazyku JavaScript, ktorý bol zavedený v ES6.
Kedy by som mal(a) použiť Arrow funkcie?Použi Arrow funkcie najmä pri callback scenároch alebo keď potrebuješ anonymné funkcie.
Aké výhody majú Arrow funkcie z hľadiska this kontextu?Arrow funkcie viažu this na okolitý kontext, čo často bráni nepredvídateľnému správaniu sa pri bežných funkciách.