【发布时间】:2015-09-17 09:10:29
【问题描述】:
我收到此错误:
JsHint (W083):不要在循环中创建函数。
使用以下代码时:
for (var prop in cmd.properties) {
Object.keys(meta[prop].data).forEach(function (rule) {
rules.data[rule] = meta[prop].data[rule] ? true : false;
}.bind(this));
}
基本上,我循环遍历对象 meta[prop].data 的属性,对于每个属性,我使用 ternary 运算符设置其他对象属性的真/假。
阅读我看到的一些文档:
JSHint 和 ESLint 在 for、while 或 do 语句体。
- 这个错误合法吗?
- 如果是,如何更好地重写这些行?
- 如果否,如何使用 JsHint 禁用此特定错误验证?
【问题讨论】:
-
你确定这段代码不在循环内吗?
-
@Juhana 感谢您的编辑,我已经对我原来的问题进行了编辑。
-
嗯,好的,在编辑之后很明显这是一个合法的错误,因为你实际上是在循环中创建一个函数。
-
不确定,能否请您在修改后的版本中发布答案?非常感谢,谢谢!
-
你可以再用
forEach来代替for循环,那bind(this)有什么用呢? (因为您不在函数中使用this)
标签: javascript jshint eslint