代码之家  ›  专栏  ›  技术社区  ›  danjah

我应该如何替换循环中淘气的jslint-shy函数defs?

  •  0
  • danjah  · 技术社区  · 14 年前

    我有一些 "Don't make functions within a loop." JSlint出错了,有人对如何修复这些东西有什么好建议吗?

    也许我的淘气是可以原谅的,因为我对雅虎的依赖( 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伤害了我的感情:)

    1 回复  |  直到 14 年前
        1
  •  1
  •   Tim Down    14 年前

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

    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);
    }