関数配列の値を返す JavaScript の問題
为情所困
为情所困 2017-05-19 10:30:05
0
3
498

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

リーリー

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

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

为情所困
为情所困

全員に返信(3)
仅有的幸福

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

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

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

リーリー
いいねを押す +0
漂亮男人

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

リーリー
いいねを押す +0
洪涛

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

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

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

リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート