Funkce jsou srdce JavaScriptu. Dříve byly vázány na použití klíčového slova function, ale ES6 přináší nový a elegantnější způsob zápisu s tzv. Šipkovými funkcemi. Tato nová syntaxe nejen zkracuje váš kód, ale také řeší některé problémy spojené s kontextem this. V tomto průvodci se dozvíte vše, co potřebujete vědět o Šipkových funkcích.
Nejdůležitější zjištění
- Šipkové funkce nabízejí kratší syntaxi ve srovnání s běžnými funkcemi.
- Nemají vlastní kontext this, což je činí velmi praktickými pro použití v callback funkcích.
- Odstraněním složených závorek a příkazu return se umožní, pokud funkce vrátí pouze jeden výraz.
Úvod do Šipkových funkcí
Šipkové funkce se obvykle používají k tomu, aby kód byl čitelnější a kompaktnější. Místo psaní function můžete novou syntaxi použít k zkrácení deklarace funkce.
Abyste pochopili, co jsou Šipkové funkce, můžete tradiční funkce použít jako výchozí bod. Když deklarujete funkci pomocí klíčového slova function, bývá obvykle delší a méně elegantní. Zde je příklad standardní funkce v JavaScriptu:
To je východisko, odkud přecházíme k Šipkovým funkcím.
Krok 1: Deklarace Šipkové funkce
Místo klíčového slova function můžete jednoduše vložit parametry do závorek a pak použít šipku následovanou tělem funkce. Zde je, jak vypadá předchozí funkce jako Šipková funkce:
Jak je vidět, syntaxe je mnohem kompaktnější. Po prvním pokusu můžete ověřit, zda funkce správně funguje.
Krok 2: Použití Šipkových funkcí s polem
Další velkou výhodou Šipkových funkcí je při jejich použití s poli. Uvažme příklad. Předpokládejme, že máte pole čísel a chcete najít pozici určitého čísla. Zde použijeme metodu findIndex k nalezení indexu:
Šipková funkce velmi zjednodušuje čitelnost kódu a snižuje potřebu dalšího klíčového slova function.
Krok 3: Zkrácení Šipkových funkcí
Pokud má Šipková funkce pouze jeden výraz, můžete vynechat složené závorky a klíčové slovo return. Takto to vypadá, pokud je funkce findIndex dále zkrácena:
To nejenže je kratší, ale i elegantnější. Můžete funkci otestovat a ujistit se, že stále funguje správně.
Krok 4: Práce s klíčovým slovem this
Jedním z klíčových výhod Šipkových funkcí je manipulace s kontextem this. V klasických funkcích bývá this často nepředvídatelné, zejména pokud se funkce používá jako zpětné volání. Naopak Šipkové funkce vážou this na kontext, ve kterém byly definovány.
Podívejte se na následující příklad:
obj.print(); // Vypíše "Text"
Pokud však použijete setTimeout s běžnou funkcí, změní se kontext this:
Použitím Šipkové funkce uvnitř setTimeout získáte stejný výsledek jako s klasickou funkcí, aniž byste ztratili kontext:
Krok 5: Udržení přiřazení this
Můžete také přiřadit this do proměnné, abyste zajistili přístup k němu. Tento vzor je však často méně elegantní než použití Šipkových funkcí.
Výhody šipkových funkcí
- Jsou kratší a elegantnější ve srovnání s tradiční deklarací funkcí.
- Nemají vlastní kontext this, což zjednodušuje použití v callback funkcích.
- Syntax umožňuje výrazně zlepšit čitelnost kódu.
Shrnutí
Šipkové funkce poskytují praktický způsob, jak efektivně deklarovat funkce v JavaScriptu. Nová syntaxe nejen zlepšuje čitelnost, ale také významně zjednodušuje manipulaci s kontextem this. Šipkové funkce bys měl/a používat zejména v případě, že potřebuješ callback funkce nebo kratší funkční výrazy.