对象没有hasOwnProperty方法(即它是未定义的) - IE8

Gez*_*zim 27 javascript internet-explorer-8 ie-developer-tools hasownproperty

这看起来很奇怪.

这是我在IE8控制台中的实验:

typeof obj1 // "object"
obj1.hasOwnProperty // {...}

typeof obj2 // "object"
obj2.hasOwnProperty // undefined
Run Code Online (Sandbox Code Playgroud)

关于什么可能导致这个问题的任何想法?

ken*_*bec 36

此示例来自IE8,但同样的回报来自IE6 +和大多数其他IE浏览器.

#9之前的IE没有为主机对象定义它

var o=window;// or document or document elements
o.hasOwnProperty

/*  returned value: (undefined)
undefined
*/
Run Code Online (Sandbox Code Playgroud)

  • 也许`Object.prototype.hasOwnProperty.call(window,name)`? (39认同)
  • @panzi:非常感谢你!这适用于IE8,现在我的网站正确检测到不兼容的浏览器.(之前,会在空白页面上崩溃,因为没有window.hasOwnProperty) (2认同)
  • @panzi:如果您将评论中的信息作为答案发布,那可能会更好.这真的是问题的解决方案*. (2认同)