Maison > Article > interface Web > Explication des fermetures en js et exemples de déclaration de variable à l'avance (code)
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 :
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!