hasOwnProperty验证
for..in…时,注意 hasOwnProperty 验证
1 | var obj = { a: 10, b: 20 }; |
以下代码中,注意中间标注释的句子。这句代码加与不加,会对下面的 for..in..循环产生影响。加上了就输出“c”,不加就不输出“c”。道理很简单,for..in..
循环不光能遍历
obj 对象本身就有的属性,还能遍历
obj 原型中的属性。
要想屏蔽
掉原型中的属性,就用 hasOwnProperty
函数,如下:
1 | for (item in obj) { |
这两句 if 判断语句,都可以用,效果是一样的。第一个代码可读性好,第二个效率相对较高。建议,没有特殊情况,用第一个即可。