var n = 0
return {
add: function () {
return ++n
},
clearVariable: function () {
n = null
}
}
})()
外部无法访问到闭包里面的变量, 但可以在闭包内部返回一个方法, 该方法将闭包内部的变量设置为null, 让变量失去引用,会被系统自动回收。
实际上如果只是要把闭包内的一些变量给删除, 那么我觉得这样的程序设计是有问题的, 如果你的变量只需要用一次,就要删除,那么使用闭包来实现这样的方法显然是浪费。 如果闭包不需要了, 想删除闭包,直接 foo = null就可以了。