javascript - document.hasOwnProperty("hidden") 返回 false,但 document 的属性为 hidden
问题描述
我正在尝试使用 document.hasOwnProperty 检查文档是否具有“隐藏”属性,但它在 Chrome (74) 中始终返回 false。
我试过 Object.prototype.hasOwnProperty 但这也返回错误。当我尝试对文档进行字符串化和解析时,我将 Location 对象作为属性返回。
console.log(document.hasOwnProperty("hidden"));
console.log(Object.prototype.hasOwnProperty.call(document, "false"));
console.log(JSON.parse(JSON.stringify(document)));
console.log(typeof document.hidden !== "undefined");
console.log(document.hidden);
console.log(Document.prototype.hasOwnProperty.call(document, "hidden"));
console.log(Document.prototype.hasOwnProperty.call(document, "location"));
不应该hasOwnProperty
检查对象是否具有与对象类型无关的属性?如果问题已经得到解答,我深表歉意。
解决方案
的目的hasOwnProperty()
是检查某个属性是否定义在实例本身上,而不是通过其继承prototype
。
在 的情况下document
,它正确地返回,false
因为该hidden
属性实际上是在Document
接口上定义的,而不是在实例本身上。
(感谢@Jonas Wilms 的澄清)
推荐阅读
- python-3.x - 比较数据库上一个表和另一个数据库上另一个表的大记录的可能方法
- kotlin - 具有 Kotlin Flow、协程和 NOT 挂起功能的并行 IO 请求
- express - 使用 multer 文件快速上传文件始终未定义
- mule - Munit4 抛出“org.springframework.beans.factory.BeanCreationException:创建名称为 '(inner bean)#1679456e' 的 bean 时出错”
- angular - Angular 出现错误 core.js:35929 Uncaught TypeError: Cannot read property 'id' of undefined
- ruby - 厨师中的Grep curl elasticsearch输出
- vue.js - Custom validation with Vuelidate Vuejs
- google-chrome - Google Chrome 的 DevTools 网络标签中的齿轮图标是什么意思?
- python - python regex 给出 1 而不是 01
- java - 多线程环境下的Java List