如何优化JavaScript闭包内存使用?

时间:2013-11-07 15:40:57

标签: javascript memory-leaks closures

我有如下嵌套回调函数:

func1(a, function(b){
  var aa;
  func2(c, function(d){
    var cc;
    func3(e, function(f){
      var ee;
      // setup event handler responding to the message
      process.on('message',function(){
        var g = b;
      });
    });
  });
});

局部变量'g'引用顶级闭包参数'b'。

在这种情况下,

  • 所有闭包变量&参数(aa,cc,ee,a,b,c,d,e,f)是否保存在内存中?
  • 或仅限顶级闭包变量&保留参数(aa,a,b)?

如何使用代码来保持仅仅'b'的值,而不是保留所有的闭包环境变量,如上面的代码?

var global_b;
func1(a, function(b){
  global_b = b;
  b = null; // free the parameter 'b'
  func2(c, function(d){
    func3(e, function(f){
      // setup event handler responding to the message
      process.on('message',function(){
        var g = global_b;
      });
    });
  });
});

提前感谢您的意见!

0 个答案:

没有答案