var scaleJssor = new Array();
for(myloop=0; myloop<jssor_slider.length; myloop++)
{
scaleJssor.push(
function() {
var parentWidth = jssor_slider[myloop].$Elmt.parentNode.clientWidth;
if (parentWidth)
{
//alert("executing ScaleSlider");
jssor_slider[myloop].$SetScaleWidth(Math.max(Math.min(parentWidth-100, 960), 230));
}
else
window.setTimeout(<here I want to pass this function>, 30);
});
}
以上只是一个代码片段,我只是想知道我怎么可以通过setTimeout()
函数,其中函数是匿名的内部函数,我知道如果我给我可以轻松传递的函数命名,但我想通过不给任何函数名称的方式。如何调用内它的功能,而其匿名函数
在循环内定义函数不是很好的做法。这意味着函数需要在循环的每次迭代中创建。最好在循环之外定义它,然后在循环中调用它。 – Craicerjack
我个人发现我已经开始回避匿名函数。在查看控制台错误时,只需查看函数名称并在源代码中搜索/跳转即可。匿名函数只是一个触摸*更难调试。 –
@Craicerjack,我需要这个循环,因为我没有定义一个特定的函数,我正在定义一个函数数组。 –