我在javascript中使用类似下面的代码。这是错的吗?我可以在循环语句中定义函数吗?
for(i=0;i<5;i++){
function somefunction(){
/*function code here*/
}
somefunction();//call that function inside the loop
}//end of for loop
我想我写了一个代码使用这个,我搞砸了一切。
我在javascript中使用类似下面的代码。这是错的吗?我可以在循环语句中定义函数吗?
for(i=0;i<5;i++){
function somefunction(){
/*function code here*/
}
somefunction();//call that function inside the loop
}//end of for loop
我想我写了一个代码使用这个,我搞砸了一切。
函数和变量在JavaScript的作用域到最近功能,而不是最近的块({ ... }
)。
所以你不能在每个循环周围定义不同的函数或变量,因为你在同一个范围内覆盖相同的名字。
因此,在循环内部放置这样的声明是个坏主意,无论标准或实现是否允许您这样做,因为它只会误导任何人阅读代码(很可能是您自己!)。
您可以在循环内创建一个匿名函数,但没有更多的上下文,我无法给出一个如何帮助您的例子。
第一个问题:为什么你需要在循环的**内部定义**?另外,你是否试图在循环之外访问它? – PlasmaPower
我不确定,但使用匿名函数('var someFunction = function(){/ * function code here * /}')应该可以工作 – Markasoftware
您可以,但是*为什么*您想要这样做?你认为“我”的价值对你来说意想不到吗? – alex