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 :
-
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 + "!"; } -
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 + "!"; }; -
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
thiset 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 + "!"; -
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); -
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"); -
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.