Table des matières
Fermeture
Comment créer une fermeture
Maison interface Web js tutoriel La signification de la fermeture en JS

La signification de la fermeture en JS

Sep 11, 2017 am 10:34 AM
javascript signification


Fermeture

Une fermeture est une fonction qui a accès à une variable dans le cadre d'une autre fonction.

Comment créer une fermeture

Le plus courant est de créer une autre fonction à l'intérieur d'une fonction. Prenons l'exemple de la fonction TrialFunction() :

function TrialFunction(property) {

      return function(a, b) {
           var a1 = a[property];           var b1 = b[property];           if (a1 < b1) {                return -1;
           } else if (a1 > b1) {                return 1;
           } else {                return 0;
           }
      };
}
Copier après la connexion

Dans le code ci-dessus, la fonction interne accède à la propriété variable dans la fonction externe. Même si la fonction interne est renvoyée et appelée ailleurs, d'autres peuvent toujours accéder à la variable de propriété.

Cela se produit parce que la chaîne de portée de cette fonction interne inclut la portée de TrialFunction.

Lorsqu'une fonction est appelée, un environnement d'exécution (Contexte d'exécution) et la chaîne de portée correspondante seront créés. Par la suite, l'objet d'activité de la fonction est initialisé en utilisant les valeurs des arguments et autres paramètres nommés. Mais dans la chaîne de portée, l'objet actif de la fonction externe est toujours en deuxième place, l'objet actif de la fonction externe de la fonction externe est en troisième place, et enfin jusqu'à l'environnement d'exécution global en tant que chaîne de portée.

Lors de l'exécution de la fonction, afin de lire et d'écrire la valeur d'une variable, vous devez trouver la variable dans la chaîne de portée.

Ce mécanisme de chaîne de portée entraîne un effet secondaire, c'est-à-dire que la fermeture ne peut obtenir que la dernière valeur de n'importe quelle variable dans la fonction conteneur.
Par exemple :

function example() {
   var result = new Array();  
   for (var i = 0; i < 10; i++) 
   {
      result[i] = function() 
      {
         return i;
      }
   }   return result;
}
Copier après la connexion

Cette fonction renverra un tableau. Généralement, tout le monde pensera que chaque fonction doit renvoyer son propre index, c'est-à-dire [0, 1, 2, ...9. ]; mais en fait, chaque fonction renvoie 10.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 pm 02:54 PM

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel Dec 17, 2023 pm 05:30 PM

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Comprendre la signification de eol en PHP Comprendre la signification de eol en PHP Mar 20, 2024 am 11:09 AM

Apprenez-en davantage sur la signification et les exemples de code d'eol en PHP. Dans la programmation PHP, eol est un terme courant qui représente « EndOfLine », qui est la fin de la ligne. Dans différents systèmes d'exploitation, la fin d'une ligne peut être représentée différemment, ce qui conduit au concept d'eol. Dans les systèmes Windows, la fin d'une ligne est composée d'un retour chariot () et d'un saut de ligne (), c'est-à-dire "" tandis que dans les systèmes Unix/Linux, la fin d'une ligne n'est représentée que par un saut de ligne (), c'est-à-dire est, "". De telles différences peuvent entraîner des systèmes d'exploitation différents

Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Dec 17, 2023 pm 12:09 PM

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

Qu'est-ce que la pièce WICC ? Qu'est-ce que la pièce WICC ? Feb 21, 2024 pm 06:00 PM

Qu’est-ce que la pièce WICC ? WICC Coin est l'abréviation de WaykiChainCoin, qui est une monnaie numérique basée sur la technologie blockchain. En tant que chaîne publique efficace, évolutive et sécurisée, WaykiChain s'engage à fournir aux entreprises et aux développeurs une infrastructure blockchain complète et des outils innovants. En tant que jeton principal de l'écosystème WaykiChain, WICC Coin joue un rôle important sur la plateforme. Caractéristiques de la monnaie WICC 1. Sûr et fiable : WaykiChain adopte l'algorithme de consensus DPoS et dispose d'un mécanisme de verrouillage distribué fiable et d'un mécanisme de consensus pour garantir un haut degré de sécurité du réseau. 2. Efficace et évolutif : WaykiChain a des vitesses de confirmation de transaction de l'ordre de la milliseconde, peut gérer des milliers de transactions par seconde et

Comment désactiver la fonction d'affichage du contenu des messages privés de Kuaishou ? Que signifie désactiver l'affichage du contenu des messages privés de Kuaishou ? Comment désactiver la fonction d'affichage du contenu des messages privés de Kuaishou ? Que signifie désactiver l'affichage du contenu des messages privés de Kuaishou ? Mar 21, 2024 pm 05:41 PM

En tant que principale plateforme de vidéos courtes en Chine, Kuaishou compte un grand nombre d'utilisateurs et la fonction de messagerie privée est un canal important d'interaction entre les utilisateurs. Cependant, certains utilisateurs peuvent être gênés par la possibilité d'afficher du contenu dans des messages privés et souhaiteraient pouvoir désactiver cette fonctionnalité de manière sélective. 1. Comment désactiver la fonction d'affichage du contenu des messages privés de Kuaishou ? 1. Ouvrez l'application Kuaishou et connectez-vous à votre compte personnel. 2. Entrez dans l'interface principale de Kuaishou et cliquez sur le bouton « Mon » dans le coin inférieur droit pour accéder au centre personnel. 3. Sur la page du centre personnel, cliquez sur l'avatar pour saisir les paramètres personnels. 4. Sur la page des paramètres personnels, recherchez l'option « Paramètres de confidentialité » et cliquez pour entrer. 5. Sur la page des paramètres de confidentialité, recherchez l'option « Afficher le contenu dans les messages privés » et cliquez pour entrer. 6. Sur la page de configuration du contenu d'affichage des messages privés, désactivez la fonction « Contenu d'affichage des messages privés »

Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 am 09:39 AM

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de réservation en ligne. À l'ère numérique d'aujourd'hui, de plus en plus d'entreprises et de services doivent fournir des fonctions de réservation en ligne. Il est crucial de mettre en place un système de réservation en ligne efficace et en temps réel. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples de code spécifiques. 1. Qu'est-ce que WebSocket ? WebSocket est une méthode full-duplex sur une seule connexion TCP.

Explication détaillée de la signification du nom d'hôte MySQL Explication détaillée de la signification du nom d'hôte MySQL Mar 01, 2024 pm 12:03 PM

Signification et utilisation spécifique du nom d'hôte MySQL MySQL est un système de gestion de bases de données relationnelles open source populaire largement utilisé dans diverses applications Web. Dans MySQL, le nom d'hôte est un concept important, utilisé pour spécifier le nom de l'hôte connecté au serveur de base de données. Dans cet article, nous expliquerons en détail ce que signifie le nom d'hôte MySQL et comment l'utiliser dans le développement réel. La signification du nom d'hôte MySQL : Dans MySQL, le nom d'hôte est utilisé pour spécifier quelles connexions sont autorisées à

See all articles