javascript - 战斗 : hasOwnProperty vs obj. Prop

标签 javascript hasownproperty

我看过一些专门介绍 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/

相关文章:

javascript - 动画不透明文本CSS

javascript - 使用 iziModal 的 iframe 功能会继续使用缓存的 URL,而不是新的 URL

javascript - For循环跳过多维数组的一个索引

ruby-on-rails - Bootstrap Modal 在带有 Rails 6 应用程序的 Heroku 中导致 'Uncaught TypeError: Cannot convert undefined or null to object' 错误

Javascript hasOwnProperty 在 Event 对象上总是 false?

javascript - 是否需要将 hasOwnProperty 与 Object.keys 一起使用?

javascript - 谁能告诉我代码有什么问题吗

javascript - JQuery Ajax PHP 验证注册

javascript - hasOwnProperty 在 FF 中返回 false

javascript - if (obj.nonExistent Property) 是否触发任何浏览器错误?