Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对象没有hasOwnProperty方法(即它未定义)-IE8_Javascript_Internet Explorer 8_Ie Developer Tools_Hasownproperty - Fatal编程技术网

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

Javascript 对象没有hasOwnProperty方法(即它未定义)-IE8,javascript,internet-explorer-8,ie-developer-tools,hasownproperty,Javascript,Internet Explorer 8,Ie Developer Tools,Hasownproperty,这似乎很奇怪 以下是我在IE8控制台中的实验: typeof obj1 // "object" obj1.hasOwnProperty // {...} typeof obj2 // "object" obj2.hasOwnProperty // undefined 关于是什么导致了这种情况,你有什么想法吗?这个例子来自IE8,但同样的结果来自IE6+和大多数其他IE浏览器 IE before#9没有为主机对象定义它 var o=window;// or document or docume

这似乎很奇怪

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

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

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

关于是什么导致了这种情况,你有什么想法吗?

这个例子来自IE8,但同样的结果来自IE6+和大多数其他IE浏览器

IE before#9没有为主机对象定义它

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

/*  returned value: (undefined)
undefined
*/

obj2是主机对象吗?您是否处于IE7/IE8/quirks模式?关于本机对象和主机对象之间的差异?:一个不需要使用hasOwnProperty()的解决方法:我遇到了这个问题,因为我想知道对象中是否存在属性,我可以通过以下链接来解决:可能
object.prototype.hasOwnProperty.call(window,name)
?@panzi:非常感谢!这在IE8中是有效的,现在不兼容的浏览器被正确地检测到了我的网站。(以前,会在空白页上崩溃,因为没有window.hasOwnProperty)@panzi:如果你把评论中的信息作为答案,可能会更好。这确实是问题的解决办法。@Oleg这只是猜测(因此“可能”)。它真的有效吗?然后我会写一个答案。@panzi:据我所知,IE8中创建的所有DOM元素/节点在
hasOwnProperty
上都有相同的问题,但是可以成功地使用
Object.prototype.hasOwnProperty.call(DomeElement,name)