我看过一些专门介绍 hasOwnProperty
的帖子,但我仍然质疑是否(以及何时)应该在简单的 obj.prop
上使用它
if (obj.hasOwnProperty("prop"))
对于检查对象是否定义了非继承属性 prop
非常有用,但这比只是做if (obj.prop)
?
当您有嵌套对象时,梯子特别有用。例如,如果您有一个对象 superheros
,该对象具有 dcComics
属性,并且该属性中还有另一个属性 batman
要检查是否使用 hasOwnProperty
设置了 bat 侠,您必须:
if (superheros.hasOwnProperty("dcComics") && superheros.dcComics.hasOwnProperty("batman") {...}
使用简单的 Prop 检查:
if (superheros.dcComics && superheros.dcComics.batman)
在大多数情况下,当您没有定义自己的 js 对象时,仅使用 obj.prop 可以接受吗?
最佳答案
如果属性不在其自身上,
obj.prop
将遵循原型(prototype)链。
obj.hasOwnProperty
仅查找它自己的属性。
关于javascript - 战斗 : hasOwnProperty vs obj. Prop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32976243/