Maison  >  Article  >  interface Web  >  Compréhension populaire des fermetures - 5Clay

Compréhension populaire des fermetures - 5Clay

一个新手
一个新手original
2017-10-09 09:54:501546parcourir

En ce qui concerne les fermetures, cela implique la portée variable de la fonction js, qui est divisée en variables locales et variables globales. Les variables en dehors de la fonction peuvent être lues directement depuis l'intérieur de la fonction, mais les variables à l'intérieur de la fonction ne peuvent pas être lues directement depuis l'extérieur de la fonction.

Mais parfois, nous avons besoin d'obtenir les variables locales de la fonction, donc la fermeture est générée. La fermeture consiste à définir une autre fonction à l'intérieur de la fonction, comme indiqué dans le code suivant :

var foo=(function () {

     var a="11";

     return{
         get_a:function () {
             return a;
         },
         new_a:function (newValue) {
             a=newValue;
         }
     }
} ())
 console.log(foo.a) //输出undefined,因为函数外部不能直接访问内部的局部变量
 console.log(foo.get_a())//输出11
 foo.new_a("我是通过闭包改变的值")//调用并且传参
 console.log(foo.get_a()) //输出我是通过闭包改变的值

De cette façon, nous pouvons obtenir les variables locales à l’intérieur d’une fonction en dehors de celle-ci. Dans la fonction ci-dessus, la fonction à l'intérieur de return est la 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