以下のコードにつきまして、分からない部分があります。
javascript
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="utf-8"> 5 6</head> 7<body> 8 <script> 9 function closure(init) { 10 var counter = init; 11 12 return function(){ 13 return ++counter; 14 } 15 } 16 17 var myClosure = closure(1); 18 19 console.log(myClosure()); //結果:2 20 console.log(myClosure()); //結果:3 21 console.log(myClosure()); //結果:4 22 </script> 23</body> 24 25</html>
上記のコードにおきまして、「var myClosure = closure(1);」としている部分で、既に変数counterは、下記の部分で2となっているのではないかと思うのですが、下記の部分の変数、counterがインクリメントされている、部分はなぜ実行されず、最初のconsole.log(myClosure()); で、「2」が出力されるのでしょうか?
return function(){ return ++counter; }
どなたかご解説頂ける方いましたら、よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。