2011-09-11 6 views
1

可能性の重複:
How do JavaScript closures work?クロージャはどのように機能しますか?

function add(num){ 
    return function(num1){     
      return function(num2){      
       return num + num1 + num2; 
     }; 
    }; 
} 

var add5 = add(7)((7))((7)); 
console.log(add5); 

私は、クロージャがどのように動作するかを把握しようとしているので、私はJavaScriptでかなり実験しました。

しかし、その後、私はこの

var add5 = add(7)((7))((7)); 
console.log(add5); //result is 21 

私はそれを見る方法を試してみたが、クロージャは外側の関数やその親関数へのポインタのようなものがありますか?

+0

あなたは[タグのwiki](http://stackoverflow.com/tags/closures/info)を読み取ることができます – galchen

+0

閉鎖のための環境はラッピング的環境の拡張されました役に立つ情報があります。 –

答えて

2

クロージャは、外部関数の実行が終了しても、内部関数がアクセス権を持つ外部関数のスコープです。どのように実装されているかは、JSインタープリタまでです。ここで

はMDNからのドキュメントです:https://developer.mozilla.org/en/JavaScript/Guide/Closures

関連する問題