zoukankan      html  css  js  c++  java
  • 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值互不影响
  • 相关阅读:
    java实现文件上传下载至ftp服务器
    理解java代理模式
    [置顶] 理解java中的线程池
    wait,notify,非阻塞队列实现生产者,消费者模型
    理解java阻塞队列BlockingQueue
    CentOS下安装配置Nginx
    putty笔记
    CentOs下安装jdk、MySql、Redis笔记
    简述yum和apt-get的区别
    Linux 文件颜色说明
  • 原文地址:https://www.cnblogs.com/treasurecat/p/8522822.html
Copyright © 2011-2022 走看看