2011-05-13 51 views
2

这个问题取决于我以前的问题:Browser crashes after 10-15 mins在这个问题上,我得到了答案,说我的代码正在做内存泄漏。所以我试图找出发生内存泄漏的点。此JavaScript脚本是否会导致内存泄漏?

这个脚本会导致内存泄漏吗?

var j = function (i, q, r, a) { 
     return function (s) { 
      var p = r.annotation; 
      if (p.hasOwnProperty(i)) { 
       p[i](p, r, a.dygraph_, s) 
      } else { 
       if (a.dygraph_.attr_(q)) { 
        a.dygraph_.attr_(q)(p, r, a.dygraph_, s) 
       } 
      } 
     } 
    }; 

如果是,那么是否有解决方案,我可以做,以防止内存泄漏?

+0

这看起来不像是任何会导致浏览器崩溃的东西,除非它在某处循环。 – 2011-05-13 12:49:33

+0

@Cobra_Fats:每次我调用'g = new Dygraph(..'这个会被调用。 – 2011-05-13 12:51:05

+0

在JavaScript中可能会泄漏内存? – Pwnna 2011-05-13 13:13:29

回答

1

这不是明显的,如果有内存泄漏,但如果这是我的代码,我会改变它像这样(不算坏的变量命名):

var j = function (i, q, r, a) { 
    var p = r.annotation, 
     dygraph = a.dygraph_; 

    return function (s) { 
     if (p.hasOwnProperty(i)) { 
      p[i](p, r, dygraph, s); 
     } else { 
      var aqExpression = dygraph.attr_(q); 

      if (aqExpression) { 
       aqExpression(p, r, dygraph, s); 
      } 
     } 
    }; 
};