js中的闭包

来源:互联网 发布:php iis配置 编辑:程序博客网 时间:2024/06/06 05:54

闭包就是一个函数引用另一个函数的变量,因为变量被引用着所以不会被回收,因此可以用来封装一个私有变量。这是优点也是缺点,不必要的闭包只会增加内存消耗。

或者说闭包就是子函数可以使用父函数的局部变量,还有父函数的参数。

function outerFunction() {    var counter = 0;    function innerFunction(){        return counter += 1;    }    return innerFunction;    /*     注意 typeof innerFunction 是:function;而typeof innerFunction()是number;    */}var add = outerFunction();/* 调用 outerFunction()返回的是内部函数innerFucntion,那么调用几次add()将调用几次内部函数inner Function,内部函数公用了counter,所以能够计数,所以说闭包就是将内部嵌套函数变成外部可调用的。*/add();add();add();


原创粉丝点击