検索

ホームページ  >  に質問  >  本文

javascript - 関数クロージャと関数をパラメータとして渡すことに関する質問

1.説明:

関数の配列結果を取得したいのですが、まず func 関数が配列の結果に無名関数を追加します (各無名関数は独自の num を保存します)

しかし、return の後に匿名関数をパラメータ付きで渡しました。これは単に置き換えることと同じです。結果が異なるのはなぜですか?

リーリー

以下では return 後の無名関数をパラメータとして渡していますが、取得できません。

リーリー
世界只因有你世界只因有你2739日前828

全員に返信(3)返信します

  • PHP中文网

    PHP中文网2017-06-26 10:52:31

    2 番目のコードの fn はグローバル環境で定義されているためです。
    ここと以下のコードをご覧ください。お役に立てれば幸いです

    リーリー

    返事
    0
  • 给我你的怀抱

    给我你的怀抱2017-06-26 10:52:31

    これは非常に単純なスコープの問題です。ループ内で定義された関数の仮パラメータは、この関数内でのみ機能します。

    ループや判定条件下で関数を定義しないでください。予期せぬ問題が発生する可能性があります。関数を取り出して定義すると、ロジックがより明確になっていることがわかります。

    返事
    0
  • 扔个三星炸死你

    扔个三星炸死你2017-06-26 10:52:31

    Num スコープの問題、JavaScript には関数スコープがあり、num が最初の関数の内側にあり、2 番目の関数が最初の関数の外側にある場合、2 番目の関数は num を取得できません。

    返事
    0
  • キャンセル返事