新手:在MDN上理解Javascript闭包示例

时间:2014-11-13 21:27:03

标签: javascript closures

我对Javascript很新,我一直在阅读closures on MDN。虽然我理解了该链接上的前两个代码片段,但我对此处复制的第三个示例中使用的语法感到困惑。

    var getCode = (function(){
         var secureCode = "0]Eal(eh&2"; 

         return function () {
             return secureCode;
         };
     })();

     getCode();    // Returns the secureCode

将外部函数包装在括号中,后跟空括号和分号的目的是什么?这种语法意味着什么或它服务的是什么?为什么不写下来呢?

    var getCode = function() {
         var secureCode = "0]Eal(eh&2"; 

         return function () {
             return secureCode;
         }
    };

    getCode();    // Returns the secureCode

2 个答案:

答案 0 :(得分:1)

示例的要点是secureCode就像一个私有变量。在括号中的函数执行后,secureCode不在范围内,因此无法写入;但返回的函数仍然可以访问变量,可以用作getter。

答案 1 :(得分:0)

换句话说,您将安全代码变量封装到CONST。它不能被写入并因此被改变,但它可通过吸气器读取。