阿神2017-06-28 09:30:39
リーリー
過去に読んだ記事
クロージャを理解するには、コードを書いてそれを自分のコードで使用する必要があります。それ以外は丸暗記するしかありません。
昔ながらの中国人は、幼い頃から子供たちに物を持たせるのが好きですが、それが何を意味するのかを知らず、時にはそれを明確に説明できないこともあります。今後
上記
を持っている場合は、私が書いたログを読んで、それでも理解できない場合は、メッセージを残して質問してください。 .com/2084...
天蓬老师2017-06-28 09:30:39
スコープチェーンは作成時に生成されています c[i] = function(i){ return i; };
実行すると現在のスコープにはiがなく、上位スコープのsave_i()のiが10になっています。結果は 0 ~ 9 になると思いますか? 上のスコープはグローバル スコープだと思いますか?
黄舟2017-06-28 09:30:39
a[i] は割り当てられたときの関数の束です。つまり、実行されず、i も取得されず、そのスコープも i を取得しません
以下で実行すると、この一連の関数は独自のスコープで取得できる i を探し始めます。これはループ実行後の 10 です
巴扎黑2017-06-28 09:30:39
var キーワードは変数スコープを関数スコープとして宣言するため、for ループ内の i 変数がプロモートされます。 投稿者が for ループ内のセクションを自己実行関数に変更すれば問題ありません。例:
関数 save_i(){
}