array = [1,2,3,4]
for num in array
//do something
num
関数の残りの部分の文脈における の値は何ですか? num
ループにスコープされますか?
array = [1,2,3,4]
for num in array
//do something
num
関数の残りの部分の文脈における の値は何ですか? num
ループにスコープされますか?
いいえ、num
ループには適用されません。コンパイルされたJSでわかるように(@epidemianが指摘したように)、それは現在のスコープ変数であるため、関数の残りの部分(現在のスコープの残りなど)でもアクセスできます。
ただし、ループ内で関数コールバックを定義する場合は注意してください。
array = [1, 2, 3]
for num in array
setTimeout (() -> console.log num), 1
出力
3
3
3
コールバック内で現在の変数を取得するにはdo
、単純に関数を呼び出す whichを使用する必要があります。
for num in array
do (num) ->
setTimeout (() -> console.log num), 1