js闭包相关的内容

来源:互联网 发布:淘宝空间图片协议在哪 编辑:程序博客网 时间:2024/06/05 07:58

闭包一直不好掌握。
问题:一个函数每次返回数字叠加,用闭包实现
方案:

    function tick(){        var a = 1;        return function(){            return a++;        };    }    var c = tick();    alert(c());    alert(c());    alert(c());

函数内部的变量无法被外部获取,但是通过闭包,能返回局部变量。
原理是,函数在创建时会生成一个作用域链,在函数执行时,变量从作用域链中读取。
所以在函数中return 一个函数的话,可以把局部变量存在内存中。

0 0
原创粉丝点击