javascript哈希键hasOwnProperty

时间:2012-09-20 16:24:18

标签: javascript

在Javascript中查找哈希中的所有值我看到了以下代码:

var myHash = {};
myHash['one'] = 1;
myHash['two'] = 2;
for (var key in myHash) {
    if (myHash.hasOwnProperty(key)) {
        //do something
    }
}

在这里检查hasOwnProperty有什么意义?

3 个答案:

答案 0 :(得分:2)

重点是确保key是直接在myHash上定义的属性,而不是通过原型链继承的属性。使用in不会自动过滤掉继承的属性,因此您可以自己完成。

但是,正如其他人所说的那样,你的具体例子并不是必需的。

来源: hasOwnProperty on MDN

答案 1 :(得分:0)

如果myHash是具有可枚举属性的对象的新实例,则可能更重要,因此不会列出方法和其他继承的属性。

答案 2 :(得分:0)

在这种特殊情况下,没有区别,但如果myHash具有“继承”属性,那么这些属性也将被循环,没有hasOwnProperty检查。

这很可能是一种预防措施,甚至是复制粘贴,编码器不会担心检查每一行是否必要,只是它有效。