如何让将js闭包内部局部变量全部删除

如题所述

var foo = (function() {
    var n = 0;
    return {
        add: function () {
            return ++n;
        },
        clearVariable: function () {
            n = null;
        }
    }
})();

外部无法访问到闭包里面的变量, 但可以在闭包内部返回一个方法, 该方法将闭包内部的变量设置为null, 让变量失去引用,会被系统自动回收。

实际上如果只是要把闭包内的一些变量给删除, 那么我觉得这样的程序设计是有问题的,  如果你的变量只需要用一次,就要删除,那么使用闭包来实现这样的方法显然是浪费。   如果闭包不需要了, 想删除闭包,直接 foo = null; 就可以了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-17
闭包:子函数继承父函数的局部变量。
局部变量和全局变量:
当你声明一个函数时(function(){}),在这个函数里面声明变量就是局部变量,而在这个函数外面声明的变量就是全局变量,全局变量在其他函数里面也能调用。当局部变量和全局变量名同名时,全局变量的值不受局部变量的值所影响。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网