我知道可以通过for in 遍历得到,但我更想知道,为什么 这种方式 得不到;
以及两种方式的区别,再次感谢
更新:Object.key
和 Object.getOwnPropertyNames
方法,工作原理基本相同,只能获取自身的可枚举的属性,像cloneNode属性是来自原型链,不是来自自身,所以获取不了
我的思路是:
您也可以沿原型链走,并将所有属性收集到一个arr中,但是比你写的代码片段更多操作了。
var e = document.createElement('div');
const getAllProperties = (e, props = []) => {
return e.__proto__ ? getAllProperties(e.__proto__, props.concat(Object.keys(e))) : [...new Set(props.concat(Object.keys(e)))];
}
const divProps = getAllProperties(e);
console.log(divProps)
也可以通过Object.propertyIsEnumerable
判断是否是可枚举
MDN文档
旧回答:
答:Object.key
无法获取不可枚举属性
可以通过Object.getOwnPropertyNames()
方法获取
13 回答13k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
你可以试试这段代码: