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
不会被限定在循环中。正如 @epidemian 指出的那样,在编译后的 JS 中,它是当前作用域变量,因此您也可以在函数的其余部分(例如当前作用域的其余部分)中访问它。array = [1, 2, 3]
for num in array
setTimeout (() -> console.log num), 1
输出
3
3
3
要在回调函数中捕获当前变量,应该使用do
来调用函数:
for num in array
do (num) ->
setTimeout (() -> console.log num), 1
do (num) ->
应该是默认行为。 - ndbroadbent