Javascript 在闭包中使用全局对象是否会导致内存泄漏?

Javascript 在闭包中使用全局对象是否会导致内存泄漏?,javascript,Javascript,我有一个全局对象,我在闭包中引用它。这会导致任何内存泄漏 var globalObject = { prop1 prop2 } 在此之后,我将调用我的inner2()进行服务调用。您将向全局对象分配可以访问闭包作用域的函数。因此,闭包调用的变量环境将不会被垃圾收集,直到函数不再可以通过全局对象访问为止,而全局对象通常会一直存在,直到卸载应用程序为止 这不一定是内存泄漏。您似乎有一个很好的理由通过全局对象使函数可用,并且只要它们是可访问的,就希望它们能够工作。此时,闭包内

我有一个全局对象,我在闭包中引用它。这会导致任何内存泄漏

var globalObject = {    
    prop1
    prop2
}

在此之后,我将调用我的
inner2()
进行服务调用。

您将向全局对象分配可以访问闭包作用域的函数。因此,闭包调用的变量环境将不会被垃圾收集,直到函数不再可以通过全局对象访问为止,而全局对象通常会一直存在,直到卸载应用程序为止


这不一定是内存泄漏。您似乎有一个很好的理由通过全局对象使函数可用,并且只要它们是可访问的,就希望它们能够工作。此时,闭包内部的变量当然需要保存在内存中。

请在代码中包含对
inner2
的调用。那么
dosomething
是函数表达式吗?@Bergi:是的。。。它们是函数表达式。@Bergi:内部函数只是从另一个文件调用的。。。。它不包含任何内容。就您的代码而言,内部函数不能从外部调用。你介意公布你的全部代码吗?
(function(){
      var a;

      function inner1(arg){
        a = arg;
        globalObject .prop1 = dosomething;
      }

      function inner2(){
        globalObject .prop1 = add more properties to prop1
        globalObject .prop2 = dosomething;
        alert(a);
      }

    })();