


Comment créer et utiliser des expressions de fonction immédiatement invoquées (iife) en javascript
Sep 21, 2025 am 05:04 AMUn iife (expression de fonction immédiatement invoquée) est une fonction qui s'exécute dès qu'elle est définie, créée en emballage une fonction entre parenthèses et en l'appelant immédiatement, ce qui empêche la pollution de l'espace de noms global et permet une portée privée par la fermeture; Il est écrit comme (function () {/ code /}) (), peut utiliser les fonctions nommées ou fléchées, prend en charge le passage des arguments et a été largement utilisé avant les modules ES6 pour l'encapsulation, l'utilisation s?re de mode strict et l'initialisation asynchrone, bien que son utilisation ait diminué avec les systèmes de modules modernes.
Une expression de fonction immédiatement invoquée (iife) est une fonction qui s'exécute dès qu'elle est définie. C'est un modèle commun dans JavaScript utilisé pour créer une portée privée, éviter de polluer l'espace de noms global et d'exécuter du code en toute sécurité sans interférer avec d'autres scripts.
Qu'est-ce qu'un ife?
Un iife est une fonction enveloppée entre parenthèses, immédiatement suivie d'un autre ensemble de parenthèses qui l'invoque. Parce que c'est une expression (pas une déclaration de fonction), elle ne pollue pas la portée globale et ses variables ne sont pas accessibles de l'extérieur, sauf exposés explicitement.
Voici la syntaxe de base:
(fonction() { // Code s'exécute immédiatement }) ();
Les parenthèses externes transforment la fonction en une expression et la tra?ne ()
l'exécute.
Comment écrire un ife
Vous pouvez écrire un iife de plusieurs manières, mais la forme la plus courante utilise une fonction anonyme:
(fonction() { console.log ("Cela fonctionne tout de suite!"); }) ();
Vous pouvez également utiliser les fonctions flèches (bien que moins courantes en raison de la lisibilité et this
différences de liaison):
(() => { console.log ("Arrow iife fonctionne aussi!"); }) ();
Les IIF nommés sont utiles pour le débogage car le nom de fonction appara?t dans les traces de pile:
(fonction myiife () { console.log ("Je suis un iife nommé"); }) ();
Pourquoi utiliser un ife?
Il y a plusieurs raisons pratiques d'utiliser l'IIFES:
évitez la pollution variable globale
Les variables déclarées à l'intérieur d'un iife ne sont pas ajoutées à l'objet global (commewindow
des navigateurs), ce qui aide à prévenir les conflits de dénomination.(fonction() { var temp = "privé"; // La température n'est pas accessible à l'extérieur }) (); // la température n'est pas définie ici
Créer des variables et des fonctions privées
Vous pouvez imiter l'état privé en utilisant des fermetures créées par un iife.const compter = (function () { Soit Count = 0; retour { incrément: () => compter, décrémente: () => - Count, valeur: () => compter }; }) (); Counter.increment (); console.log (Counter.Value ()); // 1
Utilisation s?re de ?Utiliser Strict? ou Libraries
Enveloppez votre code dans un iife pour appliquer en toute sécurité le mode strict ou éviter les conflits avec$
dans des bibliothèques comme jQuery.(fonction ($) { // $ peut être utilisé en toute sécurité comme jQuery même s'il est redéfini mondial $ (document) .ready (function () { console.log ("Dom Ready"); }); }) (jQuery);
Exécutez le code asynchrone avec Await
Dans le JavaScript moderne, vous pouvez utiliser un ASync iife pour exécuter un niveau de haut niveau dans des environnements qui ne le prennent pas en charge au niveau du module.(fonction async () { const Response = attendre fetch ('/ api / data'); const data = attendre réponse.json (); console.log (données); }) ();
Choses à garder à l'esprit
IIFES ne sont exécutés qu'une seule fois.
La fonction doit être une expression. La simple
function() {}()
provoque une erreur de syntaxe car elle est interprétée comme une déclaration de fonction.Vous pouvez transmettre des arguments dans un iife:
(fonction (name) { Console.log ("Hello", nom); }) ("Alice");
Dans le code ES6 moderne, les lunettes de bloc avec
let
etconst
, et les modules ont réduit le besoin d'IIF. Mais ils sont toujours utiles dans certains scénarios, en particulier dans le code hérité ou lorsqu'ils travaillent sans gras de modules.
Fondamentalement, les IIF sont un outil simple mais puissant pour l'encapsulation et l'exécution immédiate. Bien que moins courants aujourd'hui avec la montée en puissance des modules, ils valent toujours la peine d'être compréhensifs pour le code hérité et les cas d'utilisation spécifiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Cet article présentera comment utiliser JavaScript pour réaliser l'effet de cliquer sur les images. L'idée principale est d'utiliser l'attribut Data- * de HTML5 pour stocker le chemin d'image alternatif et écouter des événements de clic via JavaScript, changez dynamiquement les attributs SRC, réalisant ainsi la commutation d'image. Cet article fournira des exemples de code et des explications détaillés pour vous aider à comprendre et à ma?triser cet effet interactif couramment utilisé.

Tout d'abord, vérifiez si le navigateur prend en charge GeolocationAPI. Si vous êtes pris en charge, appelez getCurrentPosition () pour obtenir les coordonnées de l'emplacement actuelles de l'utilisateur et obtenir les valeurs de latitude et de longitude grace à des rappels réussis. Dans le même temps, fournissez des exceptions de traitement des rappels d'erreur tels que l'autorisation de déni, l'indisponibilité de l'emplacement ou du délai d'attente. Vous pouvez également transmettre des options de configuration pour activer une précision élevée, définir le délai d'expiration et la période de validité du cache. L'ensemble du processus nécessite l'autorisation de l'utilisateur et la gestion des erreurs correspondante.

L'utilisation du noyau de l'API de composition de Nuxt3 comprend: 1. DefinePageMeta est utilisée pour définir les méta-informations de la page, telles que le titre, la mise en page et le middleware, qui doivent être appelées directement et ne peuvent pas être placées dans des déclarations conditionnelles; 2. Usyhead est utilisé pour gérer les balises d'en-tête de page, prend en charge les mises à jour statiques et réactives et doit coopérer avec DefinePageMeta pour obtenir l'optimisation du référencement; 3. USEASYNCDATA est utilisé pour obtenir en toute sécurité des données asynchrones, gérer automatiquement l'état de chargement et d'erreur et prend en charge le contr?le d'acquisition de données du serveur et du client; 4. UseFetch est une encapsulation de usEasyncdata et $ fetch, qui dépente automatiquement la clé de demande pour éviter les demandes en double

Pour créer un intervalle de répétition dans JavaScript, vous devez utiliser la fonction setInterval (), qui exécutera à plusieurs reprises des fonctions ou des blocs de code à des intervalles de millisecondes spécifiés. Par exemple, setInterval (() => {Console.log ("Exécuter toutes les 2 secondes");}, 2000) publiera un message toutes les 2 secondes jusqu'à ce qu'il soit effacé par ClearInterval (Interpalid). Il peut être utilisé dans les applications réelles pour mettre à jour les horloges, les serveurs de sondage, etc., mais faire attention à la limite de retard minimum et à l'impact du temps d'exécution de la fonction, et effacez l'intervalle dans le temps lorsqu'il n'est plus nécessaire pour éviter les fuites de mémoire. Surtout avant la désinstallation des composants ou la fermeture des pages, assurez-vous que

Utilisez la méthode WriteText de ClipboardAPI pour copier du texte dans le presse-papiers, il doit être appelé dans le contexte de sécurité et l'interaction utilisateur, prend en charge les navigateurs modernes et l'ancienne version peut être dégradée avec EXECCOMAND.

ThebestatorreatEAmulti-linestringinjavascriptsisingstingTemplatalalswithbackticks, qui sepresereBreakenexactlyAswritten.

Aniife (immédiatementInvokedFunctionExpression) est la mise en ?uvre de l'assaveur, a créé par oursafonctionnement de laparle

Pour analyser les cha?nes JSON dans des objets JavaScript, vous devez utiliser la méthode JSON.Parse (), qui peut convertir des cha?nes JSON valides en objets JavaScript correspondants, prend en charge l'analyse des objets et des tableaux imbriqués, mais lancera une erreur pour JSON invalide. Par conséquent, vous devez utiliser Try ... Catch pour gérer les exceptions. Dans le même temps, vous pouvez convertir la valeur lors de l'analyse via la fonction Reviver du deuxième paramètre, telles que la conversion de la cha?ne de date en un objet de date, réalisant ainsi une conversion de données s?re et fiable.
