不要使循环内的函数

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

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

将函数移到循环外部:

 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 */