我在Twitter的JS文件中找到了以下代码段。我想知道为什么他们需要调用该hasOwnProperty函数才能看到dict该key属性?for循环针对“dict”中的每个“ key”运行,这意味着“ dict”具有“ key”,我是否遗漏了一点?
hasOwnProperty
dict
key
function forEach(dict, f) { for (key in dict) { if (dict.hasOwnProperty(key)) f(key, dict[key]); } }
因为如果不这样做,它将遍历原型链上的每个属性,包括您不知道的属性(这些属性可能是由于弄乱了本机对象原型而添加的)。
这样,您可以确保仅该对象实例本身上的键。