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,我需要這個循環,因爲我沒有定義一個特定的函數,我正在定義一個函數數組。 –