删除闭包

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

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

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

相关文章
相关标签/搜索