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