js 那些事二 javascript中的闭包理解

概念:闭包,值的是词法表示不被计算的变量的函数,也就是说,函数可以使用函数之外定义的变量。
闭包就是可以让我们在函数外部使用函数内部声明的局部变量。并且闭包可以储存局部变量的值。有些有可称闭包为闭包函数。

作用

  1. 可以在函数外部得到函数内部的局部变量
<script>

    function a(){
        var i = 10;
        //声明一个函数,功能是返回i
        function getI(){
            return i;
        }
        return getI;//这里不要加(),加小括号表示调用函数,而这里是返回函数
    }
    
    var funcName = a(); //调用a函数,得到a函数的返回值
    //funcName == getI
    //funcName() === getI()
    console.log(funcName());
</script>
  1. 储存变量的值
 <script>

    function a(){
        var i = 10;
        //声明一个函数,功能是返回i
        function getI(){
            console.log(i);
            i++;
        }
        return getI;//这里不要加(),加小括号表示调用函数,而这里是返回函数
    }

    var  funcName = a();  //调用a函数,得到a函数的返回值
    //funcName === getI
    // funcName() === getI()
    funcName();//11
    funcName();//12
    funcName();//13
</script>
posted @ 2019-01-03 00:03  liulonglong  阅读(87)  评论(0编辑  收藏  举报