我正在尝试计算数组中的元素,并且每次添加元素时都必须更新数字。我正在尝试使用以下函数执行此操作:
function counter() {
for(var i = 0; i < elements.length; i++) {
counter = i;
}
alert("counter has counted");
}
但它只在第一次有效!第二次调用该函数它不再起作用,警报甚至没有出现,所以我猜这个过程在for循环中被中断了。谁知道原因?
答案 0 :(得分:5)
对于存储计数和函数的变量,不应使用相同的名称(counter
)。
行counter = i;
会覆盖对函数的引用。下次您尝试拨打counter()
时,它将无效,因为counter
不再是一个功能。
请改为尝试:
function update_counter() {
for(var i = 0; i < elements.length; i++) {
counter = i;
}
alert("counter has counted");
}
答案 1 :(得分:0)
这是因为行
counter = i
这也是你的功能名称。
因此,下次调用counter()时,计数器实际上是用整数设置的。