jsのクロージャについての質問
javascript のクロージャについて勉強しているのですが、
どうしてもわからない部分がありましたので、質問させてください。
発生している問題
javascript
1function clo(){ 2 var count = 0; 3 var innerFunc = function(){ 4 return ++count; 5 } 6 return innerFunc; 7} 8 9var myclo = clo(); 10 11console.log(myclo()); 12console.log(myclo()); 13console.log(myclo());
上記のコードだと、コンソールにインクリメントされたcountが1、2、3
表示されるのですが、試しに下記のように書き換えてみたところ、
インクリメントされずに1、1、1と表示されました。
javascript
1function clo(){ 2 var count = 0; 3 var innerFunc = function(){ 4 return ++count; 5 } 6 return innerFunc; 7} 8 9console.log(clo()()); 10console.log(clo()()); 11console.log(clo()());
この理由がわからずに詰まってしまいました。
どなたかご教授お願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/27 13:55