我可以在循环语句中定义函数吗?

时间:2014-03-30 23:11:38

标签: javascript function loops for-loop call

我在javascript中使用如下代码。这是错的吗?

for(i=0;i<5;i++){

function somefunction(){
/*function code here*/
}

somefunction();//call that function inside the loop
}//end of for loop

我想我用这个编写了一个代码而且搞砸了所有内容。

1 个答案:

答案 0 :(得分:3)

JavaScript中的函数和变量的范围限定为最近的函数,而不是最近的{ ... })。

因此,每次循环时都无法定义不同的函数或变量,因为您在同一范围内覆盖了相同的名称。

因此,将这样的声明放在循环中是一个坏主意,无论标准或实现是否允许你这样做,因为它只会误导读取代码的任何人(很可能是你自己! )。

你可以在循环中创建一个匿名函数,但是如果没有更多的上下文,我真的无法给出一个如何帮助你的例子。