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
简单地调用函数:
for num in array
do (num) ->
setTimeout (() -> console.log num), 1