var dom = document.getElementById('domId');
dom.innerHTML = "hello world!";
console.log(typeof dom); //object
console.log(dom.hasOwnProperty("innerHTML")); //false
console.log(dom.__proto__.hasOwnProperty("innerHTML")); //false
var dom = document.getElementById('domId');
dom.innerHTML = "hello world!";
console.log(typeof dom); //object
console.log(dom.hasOwnProperty("innerHTML")); //false
console.log(dom.__proto__.hasOwnProperty("innerHTML")); //false
原型链上是 HTMLDivElement -> HTMLELement -> Element -> Node -> EventTarget
但innerHTML不能直接在他们上面使用,
dom的innerHTML赋值/取值肯定不是在原型链上直接赋值/取值,估计是内部的一些方法来实现的,所以上面这一串.hasOwnProperty('innerHTML')都是false。
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
typeof
只能大概识别出是object或者其他基本数据类型,不妨试试toString
,看过一些框架js,查看对象类型都是通过toString
对得到的结果做字符串处理得到类型名。可以在mdn里查看相关内容,比如div的dom类型 https://developer.mozilla.org...
可以看到它的主要继承关系。
比如innerHTML,其实在这里https://developer.mozilla.org...
Element类的属性