标签:__ ... arr 遍历 obj hasOwnProperty key
读公司源码的时候看到了这一段
for (let key in style) { if (style.hasOwnProperty(key))
一开始我很纳闷,key是从style里面遍历出来的,为什么后面还要再判断obj里面是否有这个key呢?
特地上网搜了一下
参考:https://blog.csdn.net/u013970232/article/details/109530938
总结来说for...in遍历的不单只是obj一层的属性,还会往原型上继续挖。hasOwnProperty就是为了判断当前遍历到的key是否是在当前obj的身上,而不是原型上。
var arr = { a: "lv1", __proto__: { b: "lv2", __proto__: { c: "lv3", __proto__: { c: "lv4", } } } } for(const key in arr) { console.log(key, arr[key]) }; // a lv1 // b lv2 // c lv3
for(const key in arr) { if(arr.hasOwnProperty(key)) { console.log(key, arr[key]) } }; // a lv1
标签:__,...,arr,遍历,obj,hasOwnProperty,key 来源: https://www.cnblogs.com/jacky02/p/16330345.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。