javascript – document.body vs Document.prototype.body
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – document.body vs Document.prototype.body,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1124字,纯文字阅读大概需要2分钟。
内容图文
![javascript – document.body vs Document.prototype.body](/upload/InfoBanner/zyjiaocheng/780/6fe5a9104ff542ac8a5af10ae90a59ae.jpg)
以来
document.__proto__.__proto__===Document.prototype
返回true,因为
Document.prototype.hasOwnProperty('body')
也返回true
有人可以向我解释为什么document.body和Document.prototype.body不是一回事吗?此外,为什么Chrome开发人员工具中的Document.prototype.body会导致
Uncaught TypeError: Illegal invocation(…)
(anonymous function) @ VM6098:2
InjectedScript._evaluateOn @ VM3911:904
InjectedScript._evaluateAndWrap @ VM3911:837
InjectedScript.evaluate @ VM3911:693
而document.body的结果是
<body...>...</body>
解决方法:
Document.prototype是document .__ proto__的类型(prototype ..),但它并不意味着它是同一个对象.通过继承,在其原型链中查找未找到作为对象属性的属性.在document.body的情况下,它来自Document.prototype.body,所以让我们看一下该属性:
console.log(Object.getOwnPropertyDescriptor(Document.prototype, 'body'))
可以看出,body属性定义了一个getter方法,它不是一个简单的原始值.这已经让我们暗示为什么Document.prototype.body可能会失败 – 它需要一些实例来操作.
事实上,我们可以使用我们选择的文档实例来调用此方法:
console.log(Object.getOwnPropertyDescriptor(Document.prototype, 'body').get.call(document))
现在很清楚地看到差异是什么以及它为什么表现不同.
内容总结
以上是互联网集市为您收集整理的javascript – document.body vs Document.prototype.body全部内容,希望文章能够帮你解决javascript – document.body vs Document.prototype.body所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。