teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

==はつけない

2018/07/05 22:25

投稿

raccy
raccy

スコア21768

answer CHANGED
@@ -32,4 +32,4 @@
32
32
  console.log(accum4('結果: '));
33
33
  ```
34
34
 
35
- 最初のaccumが単なる`a`にのはいいとして、問題は次のaccumですが、`return`で渡した関数そのものになります。そして、次の処理の=====outer=====の所でそのaccumが呼ばれるため、`return`で渡した関数の中身が実行されます。上のコードで言うと、`accum2`がouterで実行されているという所ですね。そのような流れで、どんどんaccumには過去の関数も蓄積され、その度にouterでもよばれているので、何度もinnerが表示されると言うことです。
35
+ 最初のaccumが単なる`a`にのはいいとして、問題は次のaccumですが、`return`で渡した関数そのものになります。そして、次の処理のouterの所でそのaccumが呼ばれるため、`return`で渡した関数の中身が実行されます。上のコードで言うと、`accum2`がouterで実行されているという所ですね。そのような流れで、どんどんaccumには過去の関数も蓄積され、その度にouterでもよばれているので、何度もinnerが表示されると言うことです。