Javascript 为什么NodeList.hasOwnProperty(';length';)在safari 9.0.2中返回true?

Javascript 为什么NodeList.hasOwnProperty(';length';)在safari 9.0.2中返回true?,javascript,safari,Javascript,Safari,这里有一个例子 警报(document.querySelectorAll('span').hasOwnProperty('length')可能是因为hasOwnProperty不适用于同一个跨浏览器,特别是因为(对于Chrome,此处…): 检查和/或更新您的Safari,但它可能仍然不起作用,因为显然他们正在进行更改 也许您可以使用一种不同的方法来处理相同的跨浏览器,例如 if('prop'在obj中) if('undefined'!==typeof obj['prop']) 性能上有细

这里有一个例子


警报(document.querySelectorAll('span').hasOwnProperty('length')可能是因为hasOwnProperty不适用于同一个跨浏览器,特别是因为(对于Chrome,此处…):

检查和/或更新您的Safari,但它可能仍然不起作用,因为显然他们正在进行更改

也许您可以使用一种不同的方法来处理相同的跨浏览器,例如

  • if('prop'在obj中)
  • if('undefined'!==typeof obj['prop'])
性能上有细微的差别,我想这对你来说不应该是个问题。另请参见以获取参考


另请参见。

可能是因为hasOwnProperty不适用于相同的跨浏览器,特别是因为(对于Chrome,此处…):

检查和/或更新您的Safari,但它可能仍然不起作用,因为显然他们正在进行更改

也许您可以使用一种不同的方法来处理相同的跨浏览器,例如

  • if('prop'在obj中)
  • if('undefined'!==typeof obj['prop'])
性能上有细微的差别,我想这对你来说不应该是个问题。另请参见以获取参考


另请参见。

任何论坛中的其他答案都表明,“hasOwnProperty”是检查对象是否具有属性的首选方法。我猜它在9.0.2之前的safari中曾经工作过。是的,它似乎确实工作过,但由于他们显然正在进行更改,我不会强制它。obj中的“prop”将始终返回原型属性的真实值。typeof NodeList.length不会像所有浏览器中预期的那样返回undefined。任何论坛中的其他答案都表明“hasOwnProperty”是检查对象是否具有属性的首选方法。我猜它在9.0.2之前的safari中曾经工作过。是的,它似乎确实工作过,但由于他们显然正在进行更改,我不会强制它。obj中的“prop”将始终返回原型属性的真实值。typeof NodeList.length不会像所有浏览器中预期的那样返回未定义。