0

"Don't make functions within a loop."从 JSLint 收到了一些错误,有人对如何修复这些东西有任何整洁的建议吗?

也许因为我对 YAHOO 的依赖(yd.下),我的顽皮是可以原谅的?我可以肯定地说,我唯一一次做了以下事情:

for( var i=0; i<FLN.revealers.length;i++ )
{
    var revEl = FLN.revealers[i] ;
    var tag = yd.getElementsBy(function(el){
                return true;
            },'script',revEl );
}

...当我需要对嵌套在一系列元素中的一系列元素执行操作时,在我看来这似乎很自然。我在我的应用程序中没有发现任何缓慢等,只是好奇,因为 JSLint 伤害了我的感情 :)

4

1 回答 1

1

简单的答案是,在这种情况下,您使用的函数不需要每次迭代都不同,因此您可以通过使用单个函数来提高效率:

var f = function(el) {
    return true;
};

for( var i=0; i<FLN.revealers.length;i++ )
{
    var revEl = FLN.revealers[i] ;
    var tag = yd.getElementsBy(f, 'script', revEl);
}
于 2010-10-14T08:45:48.770 回答