我在javascript中使用如下代码。这是错的吗?
for(i=0;i<5;i++){
function somefunction(){
/*function code here*/
}
somefunction();//call that function inside the loop
}//end of for loop
我想我用这个编写了一个代码而且搞砸了所有内容。
答案 0 :(得分:3)
JavaScript中的函数和变量的范围限定为最近的函数,而不是最近的块({ ... }
)。
因此,每次循环时都无法定义不同的函数或变量,因为您在同一范围内覆盖了相同的名称。
因此,将这样的声明放在循环中是一个坏主意,无论标准或实现是否允许你这样做,因为它只会误导读取代码的任何人(很可能是你自己! )。
你可以在循环中创建一个匿名函数,但是如果没有更多的上下文,我真的无法给出一个如何帮助你的例子。