执行函数的循环。但是,以下工作 - 计数器在页面上的图像加载时计数。
var progress = function()
{
for (var i = 0; i < slide.length; i++)
slide[i].onload = function(){
actualprogress +=1,
loading.innerHTML = actualprogress
};
}
以下操作不。当我打开页面时,计数器从头开始说“[n]”(幻灯片的数量,例如“12”)。
var progress = function()
{
var action = function(){
actualprogress +=1;
loading.innerHTML = actualprogress
}
for (var i = 0; i < slide.length; i++)
slide[i].onload = action();
}
我想从for-loop调用一个函数,因为我需要在函数中做其他更多的事情。为什么这不起作用?
答案 0 :(得分:2)
在第一个代码中,您将函数指针分配给onload属性。
在第二个代码中,您将函数返回值分配给onload属性 null 。
这些之间存在巨大差异。在操作之后, parantheses 在第二代码中额外。
onload = action() => onload = action
干杯
答案 1 :(得分:2)
在第二个代码段的最后一行,您正在调用该函数,而不是仅将其分配给slide[i].onload
。
只需将slide[i].onload = action();
更改为slide[i].onload = action;
。