0
(function(){
  var a;

  function inner1(arg){
    a = arg;
  }

  function inner2(){
    alert(a);
  }

})();

他の2つの内部関数の外側で変数を宣言しているため、これによりアプリケーションでメモリリークが発生しますか?

4

1 に答える 1

2

いいえ、匿名関数クロージャー内でその変数を宣言しているためです。

これは、次のようにして証明できます。

(function(){
  var a;

  function inner1(arg){
    a = arg;
  }

  function inner2(){
    alert(a);
  }

})();

alert(a)
于 2013-01-19T15:55:31.667 に答える