Maison > interface Web > js tutoriel > le corps du texte

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

不言
Libérer: 2018-08-15 16:28:18
original
1526 Les gens l'ont consulté

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();
Copier après la connexion

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);
Copier après la connexion

Un autre exemple :

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

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>
Copier après la connexion

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();
Copier après la connexion

équivaut à

function f1(){
        var a;
        console.log(a);
        a = 10;
    }
f1();
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal