JS-删除全局变量

JavaScript08

JS-删除全局变量,第1张

如果你没有使用严格模式,并且给一个未声明的变量赋值。此时会创建一个全局变量。全局变量可以理解为全局对象的一个属性。如果你想删除掉全局变量怎么办:但是也需要注意,有些全局变量是删不掉的。比如用“var”声明的全局变量。(在JS顶部声明)。 同样的,在函数中声明的变量也是无法删除的。

var foo = (function() {

    var n = 0

    return {

        add: function () {

            return ++n

        },

        clearVariable: function () {

            n = null

        }

    }

})()

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

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