```
function outer(){
  var a, b, c;

  function inner1(){
    ...
  }

  function inner2(){
    ...
  }

  inner1();
  inner2();
  ...
}

```

I want to keep the global namespace clean so I wrote above code. Inner functions are only used by code inside Outer. But after that I begin to thought if this will cause any memory problem. I'm not sure whether the inner functions are created beforehand or created each time the outer() is called? And will them cause memory leak?

Could someone help explain what will happen when outer() is called and when it returns? And please refer me if there are any good books or articles about javascript memory management. I always get confused by such problems. Thanks.