Sobes.tech
Junior

Ce metode de creare funcții cunoști?

sobes.tech AI

Răspuns de la AI

Există mai multe moduri de a crea funcții în JavaScript, fiecare cu propriile caracteristici:

  1. Declarații de funcții: Mod clasic de a crea funcții. Sunt ridicate (hoisted) în sus în scop, permițându-vă să le apelați înainte de declarație.

    // Declararea funcției cu function
    function greet(name) {
      return "Salut, " + name + "!";
    }
    
  2. Expresii de funcții: Funcția este creată ca parte a unei expresii și atribuită unei variabile. Nu sunt ridicate (not hoisted) în același mod ca declarațiile de funcții.

    // Expresie de funcție
    const greet = function(name) {
      return "Salut, " + name + "!";
    };
    
  3. Funcții săgeată (Arrow Functions): Formă sintactică scurtă pentru expresiile de funcții. Diferențiază față de funcțiile clasice prin caracteristicile this și lipsa argumentelor proprii (arguments).

    // Funcție săgeată
    const greet = (name) => {
      return "Salut, " + name + "!";
    };
    
    // Forma scurtă cu return implicit
    const greetShort = (name) => "Salut, " + name + "!";
    
  4. Funcții constructor: Sunt folosite pentru a crea obiecte. Sunt apelate cu cuvântul cheie new.

    // Funcție constructor
    function Person(name, age) {
      this.name = name;
      this.age = age;
    }
    
    // Crearea unei instanțe cu constructorul
    const person1 = new Person("Alexei", 30);
    
  5. Metode de clasă: În clase (zahăr sintactic peste moștenirea prototipică), funcțiile sunt definite ca metode.

    // Declararea unei clase cu metodă
    class Greeter {
      greet(name) {
        return "Salut, " + name + "!";
      }
    }
    
    // Crearea unei instanțe și apelarea metodei
    const greeter = new Greeter();
    const message = greeter.greet("Lume");
    
  6. Expresii de funcții invocate imediat (IIFE): Expresie de funcție care se execută imediat după crearea sa. Este folosită pentru a crea un scop local.

    // IIFE
    (function() {
      // Cod în interiorul IIFE
      console.log("Această funcție se execută imediat!");
    })();
    

Fiecare metodă are avantajele și dezavantajele sale, iar alegerea depinde de sarcina și contextul specific.