Я работаю над тем, чтобы весь наш JS-код проходил через jslint, иногда с большим количеством настроек с возможностью получить унаследованный код на данный момент с намерением исправить его позже.
Тамэто то, на что jslint жалуется, что у меня нет работы.То есть при использовании подобных конструкций мы получаем ошибку «Не создавать функции внутри цикла».
for (prop in newObject) {
// Check if we're overwriting an existing function
if (typeof newObject[prop] === "function" && typeof _super[prop] === "function" &&
fnTest.test(newObject[prop])) {
prototype[prop] = (function(name, func) {
return function() {
var result, old_super;
old_super = this._super;
this._super = _super[name];
result = func.apply(this, arguments);
this._super = old_super;
return result;
};
})(prop, newObject[prop]);
}
}
Этот цикл является частью реализации JS классического наследования, где классы, расширяющие существующие классы, сохраняютсупер свойство расширенного класса при вызове члена расширенного класса.Просто для пояснения, приведенная выше реализация вдохновлена этим сообщением в блоге Джона Резига.
Но у нас также есть другие экземпляры функций, созданные в цикле.
Единственное единственноеОбходной путь до сих пор состоит в том, чтобы исключить эти файлы JS из jslint, но мы хотели бы использовать jslint для проверки кода и проверки синтаксиса как часть нашей непрерывной интеграции и рабочего процесса сборки.
Есть ли лучший способ для реализации таких функций, какэто или есть способ настроить код с помощью jslint?