Sobes.tech
Junior

Quelles méthodes de création de fonctions connaissez-vous?

sobes.tech IA

Réponse de l'IA

Il existe plusieurs façons de créer des fonctions en JavaScript, chacune avec ses propres caractéristiques :

  1. Déclarations de fonctions : Méthode classique de création de fonctions. Elles sont élevées (hoisted) en haut de leur portée, ce qui permet de les appeler avant leur déclaration.

    // Déclaration de fonction avec function
    function greet(name) {
      return "Bonjour, " + name + "!";
    }
    
  2. Expressions de fonctions : La fonction est créée dans le cadre d'une expression et assignée à une variable. Elles ne sont pas élevées (not hoisted) de la même manière que les déclarations de fonctions.

    // Expression de fonction
    const greet = function(name) {
      return "Bonjour, " + name + "!";
    };
    
  3. Fonctions fléchées : Forme syntaxique abrégée pour les expressions de fonctions. Elles diffèrent des fonctions classiques par les caractéristiques de this et l'absence de leurs propres arguments (arguments).

    // Fonction fléchée
    const greet = (name) => {
      return "Bonjour, " + name + "!";
    };
    
    // Forme abrégée avec retour implicite
    const greetShort = (name) => "Bonjour, " + name + "!";
    
  4. Fonctions constructrices : Utilisées pour créer des objets. Elles sont appelées avec le mot-clé new.

    // Fonction constructeur
    function Person(name, age) {
      this.name = name;
      this.age = age;
    }
    
    // Création d'une instance avec le constructeur
    const person1 = new Person("Alexei", 30);
    
  5. Méthodes de classe : Dans les classes (sucre syntaxique sur l'héritage prototype), les fonctions sont définies comme méthodes.

    // Déclaration de classe avec méthode
    class Greeter {
      greet(name) {
        return "Bonjour, " + name + "!";
      }
    }
    
    // Création d'une instance et appel de la méthode
    const greeter = new Greeter();
    const message = greeter.greet("Monde");
    
  6. Expressions de fonctions immédiatement invoquées (IIFE) : Expression de fonction qui s'exécute immédiatement après sa création. Utilisée pour créer une portée locale.

    // IIFE
    (function() {
      // Code à l'intérieur de l'IIFE
      console.log("Cette fonction s'exécute immédiatement!");
    })();
    

Chaque méthode a ses avantages et inconvénients, et le choix dépend de la tâche et du contexte spécifiques.