Javascript hasOwnProperty在FF中返回false

Javascript hasOwnProperty在FF中返回false,javascript,internet-explorer,firefox,dom,hasownproperty,Javascript,Internet Explorer,Firefox,Dom,Hasownproperty,我正在尝试为我的框架创建一个方法,该方法将处理元素中的文本,但FF和IE中存在问题 <div id="myDiv" style="border: 1px solid red;"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit lacus non hendrerit cursus. </div> <script> console.log(do

我正在尝试为我的框架创建一个方法,该方法将处理元素中的文本,但FF和IE中存在问题

<div id="myDiv" style="border: 1px solid red;">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit lacus non hendrerit cursus.
</div>

<script>
    console.log(document.getElementById('myDiv').hasOwnProperty("innerHTML"));
</script>

Lorem ipsum dolor sit amet,是一位杰出的献身者。他是一个有缺陷的人,而不是一个有缺陷的人。
log(document.getElementById('myDiv').hasOwnProperty(“innerHTML”);

在FF和IE中返回false,但在Chrome中返回true。这是为什么呢?

从Chrome 43开始,按照规范,
innerHTML
属性位于
元素上。prototype
(作为getter/setter对),而不是元素实例上。Firefox和IE正确地实现了规范。铬违反了规范,因为他们声称从JS到C++的调用如果在原型上进行的话会慢一些(虽然在实践中,SpiderMonkey设法使调用比DOM属性吸收器的V8更快)。
有关此更改的更多信息,请参见:

为什么要检查它是否将
innerHTML
作为自己的属性?只需使用
if('innerHTML'在myDiv中){…
那么你可以使用它,即使它不是div自己的属性。它仍然可以工作,即使它是继承的,因为
innerHTML
是一个getter/setter属性,而不是一个常规属性。@joesimons:当然有不同的方法,但我也很好奇为什么hasOwnProperty不工作。对于文本,你应该使用el.textContent而不是可能有害的innerHTML()它不能是自己的属性。
hasOwnProperty
可能工作正常。还有什么要说的吗?