Jaké způsoby vytváření funkcí znáte?
sobes.tech AI
Odpověď od AI
Existuje několik způsobů, jak vytvářet funkce v JavaScriptu, každý se svými vlastnostmi:
-
Deklarace funkcí: Klasický způsob vytváření funkcí. Jsou (hoisted) povýšeny (hoisted) na začátek rozsahu, což umožňuje jejich volání před deklarací.
// Deklarace funkce pomocí function function greet(name) { return "Ahoj, " + name + "!"; } -
Výrazy funkcí: Funkce je vytvořena jako součást výrazu a přiřazena proměnné. Nejsou (not hoisted) povýšeny stejným způsobem jako deklarace funkcí.
// Výraz funkce const greet = function(name) { return "Ahoj, " + name + "!"; }; -
Šipkové funkce (Arrow Functions): Zkrácená syntaxe pro výrazy funkcí. Odlišují se od klasických funkcí vlastnostmi
thisa absencí vlastních argumentů (arguments).// Šipková funkce const greet = (name) => { return "Ahoj, " + name + "!"; }; // Zkrácená forma s implicitním návratem const greetShort = (name) => "Ahoj, " + name + "!"; -
Konstruktivní funkce: Používají se k vytváření objektů. Volají se klíčovým slovem
new.// Konstruktorová funkce function Person(name, age) { this.name = name; this.age = age; } // Vytvoření instance pomocí konstruktoru const person1 = new Person("Aleksei", 30); -
Metody třídy: Ve třídách (syntaktický cukr nad prototypovým děděním) jsou funkce definovány jako metody.
// Deklarace třídy s metodou class Greeter { greet(name) { return "Ahoj, " + name + "!"; } } // Vytvoření instance třídy a volání metody const greeter = new Greeter(); const message = greeter.greet("Svět"); -
IIFE (Okamžitě volané funkční výrazy): Výraz funkce, který se provádí ihned po vytvoření. Používá se k vytvoření lokálního rozsahu.
// IIFE (function() { // Kód uvnitř IIFE console.log("Tato funkce se provádí okamžitě!"); })();
Každá metoda má své výhody a nevýhody a volba závisí na konkrétním úkolu a kontextu.