Как мне заменить мою непослушную функцию JSLint-shy def внутри циклов? - PullRequest
0 голосов
/ 14 октября 2010

Я получаю несколько "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 ранил мои чувства :)

1 Ответ

1 голос
/ 14 октября 2010

Простой ответ заключается в том, что в этом случае используемая функция не обязательно должна отличаться для каждой итерации, поэтому вы можете повысить эффективность, используя вместо нее одну функцию:

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