Не делайте функции в цикле [дубликат]
этот вопрос уже есть ответ здесь:
- Как исправить ошибку 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_;
}
};
}
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 */