不要在一个循环内使功能[复制]不要在一个循环内使功能[复制](Don't make func

2019-05-13 15:51发布

这个问题已经在这里有一个答案:

  • 如何解决的JSLint错误“不要在循环中做功能。”? 6个回答

什么是解决JSLint的错误在这种情况下,正确的方法是什么? 我添加一个getter函数来使用这个对象。 我不知道如何做到这一点,而无需创建循环内的功能。

for (var i = 0; i<processorList.length; ++i) {
   result[i] = {
       processor_: timestampsToDateTime(processorList[i]),
       name_: processorList[i].processorName,
       getLabel: function() { // TODO solve function in loop.
            return this.name_;
       }
   };
}

Answer 1:

将外循环功能:

function dummy() {
    return this.name_;
}
// Or: var dummy = function() {return this.name;};
for (var i = 0; i<processorList.length; ++i) {
   result[i] = {
       processor_: timestampsToDateTime(processorList[i]),
       name_: processorList[i].processorName,
       getLabel: dummy
   };
}

...或者只是使用忽略该消息loopfunc选项在文件的顶部:

/*jshint loopfunc:true */


文章来源: Don't make functions within a loop [duplicate]