JavaScript:JSLint 错误“for in 的主体应包含在 if 语句中,以过滤原型中不需要的属性”

2024-03-26

我正在使用JSLint http://JSLint.com确保我的 JavaScript 是“严格的”的工具。

我收到以下错误,但不明白如何修复它:

The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype

对于以下代码:

for (var i in keypairs) {
    ...
}

任何人都知道如何解决这个问题,因为它是 JavaScript“严格”的并且不会被 JSLint 标记


If keypairs是一个数组,那么你应该真正迭代元素,例如:

for(var i = 0; i < keypairs.length; i++) {
  ...
}

If keypairs是一个散列,那么 JSLint 正确地建议您检查是否在适当的密钥类型上进行操作(即确认散列是预期的类型)

所以像

for(var i in keypairs) {
  if(keypairs.hasOwnProperty(i)) {
    ...
  }
}

其中 if 正在验证任何标准,确保您没有访问原型函数等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript:JSLint 错误“for in 的主体应包含在 if 语句中,以过滤原型中不需要的属性” 的相关文章