javascript - 関数クロージャと関数をパラメータとして渡すことに関する質問
世界只因有你
世界只因有你 2017-06-26 10:50:31
0
3
789

1.説明:

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

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

リーリー

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

リーリー
世界只因有你
世界只因有你

全員に返信(3)
Ty80

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

リーリー
いいねを押す +0
给我你的怀抱

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

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

いいねを押す +0
扔个三星炸死你

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

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