検索

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

関数配列の値を返す JavaScript の問題

js の閉包問題を学習していたとき、js 高度なプログラミングのコード例を入力して実験しましたが、結果は一貫性がなく、理解できませんでした。

リーリー

このコードの結果は、それぞれの値が 10 である配列になるはずですが、ブラウザで実験した結果、返されるのは関数の配列であることがわかりました。

では、なぜ数値配列を返さないのでしょうか?

为情所困为情所困2776日前511

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

  • 仅有的幸福

    仅有的幸福2017-05-19 10:32:05

    は関数の配列です。各関数には戻り値 i がありますが、この関数は実行されません。
    本の 181 ページ、コードの下の最初の文を注意深く読んでください。

    この関数は関数の配列を返します。

    以前これを見たとき、10 個すべてを直接返す方が直感的だと感じました。よく考えてみると、返された関数の直後に () を追加すると、返される i は毎回通常のインデックス値になり、毎回即時実行関数を作成することと同じになり、期待した効果が得られません。

    リーリー

    返事
    0
  • 漂亮男人

    漂亮男人2017-05-19 10:32:05

    配列要素に関数を割り当てているだけであり、これらの関数を呼び出しているわけではないからです。

    リーリー

    返事
    0
  • PHP中文网

    PHP中文网2017-05-19 10:32:05

    result は、要素が関数である配列です。

    だからあなたはこの状況にいるのです

    必要なものをすべて取得したい場合は 10、配列を反復処理して配列要素である関数を呼び出し、戻り値をログに記録するだけです

    リーリー

    返事
    0
  • キャンセル返事