【已解决】 The body of a for-in should be wrapped in an if statement to filter unwanted properties from the…
七娃博客
1,083人阅读
今天在用for in遍历的时候,编辑器突然抛出了错误:"The body of a for-in should be wrapped in an if statement to filter unwanted properties from the...",发生了什么??? 之前还一直用了,并没有出现这样的异常。
然后发现es-link开启了严谨模式,哎!辛亏之前遇到过这个问题,虽然没有总结,但是知道需要判断一下对象是否含有这个属性,就是这个原因导致,随手记录一下吧!——可能有小白遇到这个问题了呢。
解决办法:
理论就是上面说的:判断一下对象是否含有这个属性 然后在使用循环的子属性。如下:
for (let item in obj) { if (obj.hasOwnProperty(item)) { console.log(item); } }
但是,vue中直接使用 hasOwnProperty 会提示不安全,报错:“Do not access Object.prototype method 'hasOwnProperty' from target object.”
简单说还是不严谨,因为对象的方法可以重新定义修改。这样再使用就不安全了,所以建议使用以下方法:用Object的原型方法,如下:
for (let item in obj) { if (Object.prototype.hasOwnProperty.call(obj, item)) { console.log(item); } }
对就这样,用原型方法解决这个问题最稳妥!好久不写笔记了,突然不知道说点什么,继续深造吧!
主题开源不易,支持一下作者吧!
使用支付宝打赏
使用微信打赏
评论 | 0 条评论
登录之后才可留言,前往登录