javascript--闭包

闭包:1.打破一般的作用域链的形式,使外部可以访问到局部作用域变量的内容

           2.使访问的局部变量保存在内存中,而不是函数执行完之后就被销毁。

闭包的形式一:

<script type="text/javascript">
    function f1() {
        var a = 12;
        return function() {
            return a;
        }
    }
    var func = f1();
    alert(func());
</script>

在f1中返回一个函数,该函数访问了f1的局部变量,并将其return,这样在外部调用f1的返回值,即执行该函数,就可以间接的访问到f1的局部变量a。这样打破了传统的作用域链的形式,这就是闭包。

闭包形式二:

function f1(param) {
    var n = function() {
        return param;
    }

    param++;
    return n;
}

var func = f1(123);
alert(func());//124
原文地址:https://www.cnblogs.com/xnn1993/p/7414176.html