JavaScript 使用闭包防止变量污染


javaScript在多人协作时,如果定义过多的全局变量 有可能造成全局变量命名冲突,使用闭包来解决功能对变量的调用 将变量写到一个独立的空间里面 就是闭包里面
 1         var name = "外部name";  2         var init = (function(){  3             var name = "内部name";  4             function callName(){  5  console.log(name);  6                 //打印name
 7  }  8             return function(){  9  callName(); 10                 //形成接口
11  } 12  }()); 13         init();

将最后一个函数return之后返回给init函数形成一个执行callName()函数的接口 开启callName()这个功能  这样做形成了一个闭包 闭包的变量私有化不会污染全局变量 

执行init() 打印的name与外部的name互不影响

使用这种方式也有利于实现各种操作 不污染全局变量就可以把特定的功能写到一个闭包里面去 然后留出一个接口方便启用这个功能

 

 

<script>    
        var name = "GlobalName"; //全局变量

        var init = (function(){ var name = "initName"; function callName(){ console.log(name); //打印name
 } return function(){ callName(); //形成接口
 } }()); init(); // --> initName


        var initSuper = (function(){ var name = "initSuperName"; function callName(){ console.log(name); //打印name
 } return function(){ callName(); //形成接口
 } }()); initSuper(); // --> initSuperName
    </script>

在执行init( )和initSuper( )时打印的name值互不影响

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM