1.説明:
関数の配列結果を取得したいのですが、まず func 関数が配列の結果に無名関数を追加します (各無名関数は独自の num を保存します)
しかし、return の後に匿名関数をパラメータ付きで渡しました。これは単に置き換えることと同じです。結果が異なるのはなぜですか?
以下では return 後の無名関数をパラメータとして渡していますが、取得できません。
2 番目のコードの fn はグローバル環境で定義されているためです。 ここと以下のコードをご覧ください。お役に立てれば幸いです
これは非常に単純なスコープの問題です。ループ内で定義された関数の仮パラメータは、この関数内でのみ機能します。
ループや判定条件下で関数を定義しないでください。予期せぬ問題が発生する可能性があります。関数を取り出して定義すると、ロジックがより明確になっていることがわかります。
Num スコープの問題、JavaScript には関数スコープがあり、num が最初の関数の内側にあり、2 番目の関数が最初の関数の外側にある場合、2 番目の関数は num を取得できません。
2 番目のコードの fn はグローバル環境で定義されているためです。
リーリーここと以下のコードをご覧ください。お役に立てれば幸いです
これは非常に単純なスコープの問題です。ループ内で定義された関数の仮パラメータは、この関数内でのみ機能します。
ループや判定条件下で関数を定義しないでください。予期せぬ問題が発生する可能性があります。関数を取り出して定義すると、ロジックがより明確になっていることがわかります。
Num スコープの問題、JavaScript には関数スコープがあり、num が最初の関数の内側にあり、2 番目の関数が最初の関数の外側にある場合、2 番目の関数は num を取得できません。