Maison >interface Web >js tutoriel >Qu'est-ce qu'une fermeture js ? Comprendre les fermetures js

Qu'est-ce qu'une fermeture js ? Comprendre les fermetures js

不言
不言original
2018-09-01 15:56:552658parcourir

Qu'est-ce que la fermeture en js ? Pour ceux qui sont exposés au concept de fermeture pour la première fois, je pense que beaucoup d'amis ne le comprendront pas. L'article suivant vous expliquera Comment comprendre js Closure.

La fermeture est un point difficile en js et ses caractéristiques De nombreuses applications avancées reposent sur des fermetures. Jetons donc d'abord un coup d'œil au concept de fermeture js.

Qu'est-ce qu'une fermeture ?

Selon l'explication officielle : la soi-disant fermeture fait référence à une expression (généralement une fonction) qui a de nombreuses variables et un environnement lié à ces variables, donc ces variables sont également la partie expression de la formule.

En regardant ce concept seul, je pense que de nombreux amis auront du mal à comprendre. Après tout, cette déclaration est trop "officielle", parlons donc de la compréhension de la méthode des fermetures js. Laissez-vous comprendre plus clairement ce qu'est la fermeture js.

Compréhension des fermetures js

Regardons d'abord un exemple :

def foo() {
    var a = 1;
    def bar() {
        a = a + 1;
        alert(a);
    }
    return bar;
}
var closure = foo();  // 这个时候返回的是 bar() 这个函数外加其包上的变量 a;
var closure2 = foo(); // 这里同样生成了另外一个闭包(实例)
closure(); // 2
closure2(); // 2 , 绑定了另外一份变量 a
closure(); // 3

De cet exemple, nous pouvons voir :

Pour la méthode foo() conventionnelle, l'existence de la variable a à l'intérieur devrait disparaître après l'exécution de la méthode foo(), mais la méthode foo() renvoie une nouvelle barre carrée(), et cette méthode accède à la variable a de la méthode foo() (JavaScript accède à la propriété parent via la chaîne Scope) et l'existence de la méthode bar() prolonge la durée d'existence de la variable a, ce qui revient à fermer la variable a dans son propre rôle. de même dans la portée du domaine. Tant que la méthode bar() n'a pas expiré, la variable a existera toujours avec la méthode bar(). La forme d'existence de la variable a et de la méthode bar() est appelée une fermeture.

À partir des exemples ci-dessus, pouvons-nous résumer à nouveau notre compréhension des fermetures js ?

Une fermeture est une portée lexicale créée par une fonction. Une fois que les variables créées dans celle-ci sont référencées, elles peuvent être utilisées librement en dehors de cet environnement lexical.

Les fermetures sont généralement utilisées pour créer des variables internes afin que ces variables ne puissent pas être modifiées à volonté par l'extérieur et puissent être exploitées via des interfaces de fonction spécifiées.

D'accord, vous comprenez maintenant mieux les fermetures js. Si vous ne comprenez toujours pas, vous pouvez consulter la colonne Tutoriel vidéo javascript sur le site Web PHP chinois pour en savoir plus. .

Recommandations associées :

Explication détaillée de l'utilisation des fermetures dans js

Comprendre les fermetures js en une minute_compétences javascript

Comment comprendre les fermetures en js

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:
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
Article précédent:Que signifie javascript ?Article suivant:Que signifie javascript ?

Articles Liés

Voir plus