Sobes.tech
Junior

Aké spôsoby vytvárania funkcií poznáte?

sobes.tech AI

Odpoveď od AI

Existuje niekoľko spôsobov, ako vytvárať funkcie v JavaScripte, každý so svojimi špecifikami:

  1. Deklarácie funkcií (Function Declarations): Klasický spôsob vytvárania funkcie. Sú zdvihnuté (hoisted) hore v rámci viditeľnosti, čo umožňuje ich volanie pred deklaráciou.

    // Deklarácia funkcie pomocou function
    function greet(name) {
      return "Ahoj, " + name + "!";
    }
    
  2. Výrazy funkcií (Function Expressions): Funkcia je vytvorená ako časť výrazu a priradená premennej. Nie sú zdvihnuté (not hoisted) v rovnakom rozsahu ako deklarácie funkcií.

    // Výraz funkcie
    const greet = function(name) {
      return "Ahoj, " + name + "!";
    };
    
  3. Šípové funkcie (Arrow Functions): Skrátená syntax pre výrazy funkcií. Odlišujú sa od klasických funkcií vlastnosťami this a absenciou vlastných argumentov (arguments).

    // Šípová funkcia
    const greet = (name) => {
      return "Ahoj, " + name + "!";
    };
    
    // Skrátená forma šípovej funkcie s implicitným návratom
    const greetShort = (name) => "Ahoj, " + name + "!";
    
  4. Konštruktorové funkcie (Constructor Functions): Používajú sa na vytváranie objektov. Volajú sa s kľúčovým slovom new.

    // Konštruktorová funkcia
    function Person(name, age) {
      this.name = name;
      this.age = age;
    }
    
    // Vytvorenie inštancie objektu pomocou konštruktora
    const person1 = new Person("Alexey", 30);
    
  5. Metódy triedy (Class Methods): V triedach (syntaktický cukor nad prototypovým dedičstvom) sú funkcie definované ako metódy.

    // Vyhlásenie triedy s metódou
    class Greeter {
      greet(name) {
        return "Ahoj, " + name + "!";
      }
    }
    
    // Vytvorenie inštancie triedy a volanie metódy
    const greeter = new Greeter();
    const message = greeter.greet("Svet");
    
  6. IIFE (Immediately Invoked Function Expressions): Funkčný výraz, ktorý sa vykoná okamžite po vytvorení. Často sa používa na vytvorenie lokálneho rozsahu viditeľnosti.

    // IIFE
    (function() {
      // Kód vnútri IIFE
      console.log("Táto funkcia sa vykonáva okamžite!");
    })();
    

Každá metóda má svoje výhody a nevýhody, a výber závisí od konkrétneho zadania a kontextu.