我正在阅读一本关于函数式 javascript 的书。在那本书中,有以下代码:
const forEachObj = (obj,fn) =>{
for(let prop in obj){
if(obj.hasOwnProperty(prop)){
fn(prop,obj[prop]);
}
}
};
我将此理解为遍历对象的每个属性,然后询问该对象是否具有该属性,然后运行提供的函数。
我不明白 if 是如何做任何事情的。它不会永远是真的吗?不就是问从obj
得到的prop
是不是obj
的属性吗?
最佳答案
来自MDN
The hasOwnProperty() method returns a boolean indicating whether the object has the specified property as its own property (as opposed to inheriting it).
许多属性(例如 toString
)是继承的,但在检查对象上定义的键时,您可能不想迭代这些属性。
关于javascript - 阐明我对一些 JavaScript 的理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54874265/