object has no hasOwnProperty method (i.e. it's undefined) - IE8

Gezim picture Gezim · Nov 16, 2011 · Viewed 23.6k times · Source

This seems quite bizarre.

Here's my experiment in the IE8 console:

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

typeof obj2 // "object"
obj2.hasOwnProperty // undefined

Any ideas as to what could cause this?

Answer

kennebec picture kennebec · Nov 16, 2011

This example is from IE8, but the same return is from IE6+ and most other IE browsers.

IE before #9 does not define it for host objects

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

/*  returned value: (undefined)
undefined
*/