Maison  >  Article  >  interface Web  >  Explication des fermetures en js et exemples de déclaration de variable à l'avance (code)

Explication des fermetures en js et exemples de déclaration de variable à l'avance (code)

不言
不言original
2018-08-15 16:28:181532parcourir

Ce que cet article vous apporte, c'est l'explication des fermetures en js et des exemples (code) de déclarations de variables à l'avance. Il a une certaine valeur de référence. Les amis dans le besoin pourront s'y référer. .

Closure

déclare la fonction B dans la fonction A, et la fonction B utilise des variables dans la portée de la fonction A, et la fonction A renvoie la fonction B , alors la fonction B forme une fermeture sur la portée de la fonction A. Une fois la fonction A appelée, tant que la fonction renvoyée B existe, la portée de la fonction A existera toujours

function makeFn(){
        var n1 = 100;
        function fn(){
            var n2 = 200;
            console.log(n1);
        }
        return fn;
    }
    var f2 = makeFn();
    f2();

Les fermetures peuvent implémenter des fermetures privées propriétés des objets, telles que :

var obj = {
        name:"sunset",
        age:12,
        speak:function(){
            console.log("我是"+this.name);
        }
    }
    console.log(obj.name);

Un autre exemple :

function makeObj(){
        var name = "sunset";
        var age = 12;
        var obj = {
            speak:function(){
                console.log("我叫"+name);
            }
        }
        return obj;
    }
    console.log(obj.speak());

Le dernier très bon exemple : (exécuter après l'importation de jQuery Jetez un œil)

<script>
    for (var i = 0; i < 10; i++) {
        function makeFn(index) {
            function fn() {
                console.log(index)
            }
            return fn;
        }
        var btn = makeFn(i);
        $("<button></button>")
        .text(i + 1)
        .appendTo(document.body)
        .on("click",btn)
    }
</script>

Déclaration de variable à l'avance :

Dans le cadre de js, toutes les déclarations de variables seront avancées, mais l'affectation ne sera pas avancée (variables je ne le démontrerai pas à l'avance, là n'est pas nécessaire de l'expliquer après l'apprentissage)

var a = 3;
    function f1(){
       console.log(a);
       var a = 10;
    }

f1();

équivaut à

function f1(){
        var a;
        console.log(a);
        a = 10;
    }
f1();

Recommandations associées :

Acquisition de fermeture PHP Explication de la différence entre variables externes et déclaration de mot clé global variables_php exemple

Explication détaillée de la déclaration de variable JS

Package de fermeture JavaScript - variables et cet objet en fermeture

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