JavaScript可能发生意外迭代

普罗米修斯

我有以下代码:

  for (i in awards) {
         if (awards[i] instanceof Array === false) {
               console.log(awards[i]);
                httpFactory.patch(awards[i], {"read": true}, false);
             }
       }

我的IDE显示与上述代码有关的错误:

可能对意外(自定义/继承)成员进行迭代,可能缺少hasOwnProperty检查

检查JavaScript中未过滤的for-in循环的任何实例。使用此构造会导致处理继承或意外的属性。您需要使用hasOwnProperty()方法过滤自己的属性。验证适用于JavaScript,html或jsp文件。

您能否更详细地解释此声明的含义?

阿尼塔克

IDE建议您添加一个测试:

if (awards.hasOwnProperty(i)) {
    ...
}

for循环内。

我个人建议不要这样做,并尽可能禁用警告。基本上,大多数代码都不需要,甚至在ES5代码中也不再需要,您可以使用以下代码安全地向对象添加不可枚举的属性Object.defineProperty

hasOwnProperty仅当您不安全地向其中添加了新的(可枚举的)属性时Object.prototype才需要执行检查,因此最简单的解决方法是不要执行此操作

jQuery不会执行此测试-他们明确记录了如果Object.prototype不安全地修改jQuery将会破坏

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

结帐后发生意外变化

来自分类Dev

与Stripe发生意外错误

来自分类Dev

新活动发生意外错误?

来自分类Dev

Numpy阵列发生意外变化

来自分类Dev

)此时发生意外错误

来自分类Dev

与Stripe发生意外错误

来自分类Dev

TCP插件发生意外错误

来自分类Dev

登录错误:发生意外错误

来自分类Dev

在python中迭代目录时发生意外行为

来自分类Dev

已经需要Thor。这可能会导致Bundler发生意外故障

来自分类Dev

将PHP与JavaScript结合使用时发生意外的令牌错误

来自分类Dev

编写简单的代码行时发生意外错误

来自分类Dev

指针受影响后发生意外的指针更改

来自分类Dev

numpy.array发生意外的逆回合

来自分类Dev

%config(noreplace)文件上发生意外的RPM冲突

来自分类Dev

使用JSON.parse发生意外的编码错误

来自分类Dev

使用LinearSegmentedColormap时发生意外插值

来自分类Dev

使用Jest发生意外的保留字错误

来自分类Dev

使用PowerMock时发生意外的方法调用-EasyMock

来自分类Dev

在CoreEngineExecution作业阶段发生意外错误

来自分类Dev

“ for in”之后和“ do”之前发生意外错误

来自分类Dev

收到推送后发生意外的系统错误

来自分类Dev

cin溢出int时发生意外行为

来自分类Dev

获取ArrayList的值时发生意外的IndexOutOfBoundException

来自分类Dev

MatPaginator ngIf内部发生意外行为?

来自分类Dev

InputFunctionException:解析时发生意外的EOF

来自分类Dev

使用ostringstream时发生意外行为

来自分类Dev

vue.js发生意外的选择下拉行为

来自分类Dev

在Blazor中使用JsonPatchDocument发生意外错误