小编典典

for..in和hasOwnProperty

javascript

我在Twitter的JS文件中找到了以下代码段。我想知道为什么他们需要调用该hasOwnProperty函数才能看到dictkey属性?for循环针对“dict”中的每个“ key”运行,这意味着“ dict”具有“ key”,我是否遗漏了一点?

function forEach(dict, f) {
    for (key in dict) {
        if (dict.hasOwnProperty(key))
            f(key, dict[key]);
    }
}

阅读 371

收藏
2020-05-01

共1个答案

小编典典

因为如果不这样做,它将遍历原型链上的每个属性,包括您不知道的属性(这些属性可能是由于弄乱了本机对象原型而添加的)。

这样,您可以确保仅该对象实例本身上的键。

2020-05-01