我正在使用一个 jQuery.each()
调用,它使用一个匿名函数,从一个for
循环内部。JSLint 提出警告“不要在循环中创建函数”。
这是一个更大函数的代码片段 - 本质上它正在检查游戏的每个玩家是否仍然“活着”(棋盘上至少有一个棋子)。
for( i=0 ; i<PLAYERLIMIT ; ++i ) {
if( player[i].status !== 0 ) { //skip already dead players
var stillAlive = false;
$board.find("td").each( function() { //this func causes JSLint warning
if( $(this).data("owner") === player[i].number ) {
stillAlive = true;
return false;
}
});
if( !stillAlive ) {
//... action to take for dead players
}
}
}
我可以看到如何删除此警告 - 只需单独声明该函数并调用它。但这是一个非常小的一次性函数,基本上我认为这是一个嵌套for
循环的主体,(我基本上是把.each()
调用读成类似的东西for $("td") in $board {}
)
这个 JSLint 是提供它的样式警告之一,还是更严重?
基本上,我最好解决这个问题吗?
我想了解警告的原因,所以任何关于警告存在的原因的评论都是有用的(我再次想知道它是否实用或风格)。