如何枚举像HTMLElement这样的Javascript对象?

时间:2014-05-07 13:36:41

标签: javascript dom

我想枚举所有全局对象。这包括HTMLElement,SVGAnimatedPreserveAspectRatio和CameraControl。我在这个问题上看到的所有答案都让你迭代windowglobal对象(通过命名空间之外的this等技巧获得)。但是这些技巧不会列出元素,即使它包含在window中!

这是一些控制台日志,但如果你把它放在测试.html页面中,你会得到相同的结果。

> HTMLElement
[object Function]
> window['HTMLElement']
[object Function]
> 'HTMLElement' in window
true
> for(var name in window){if(name == "HTMLElement")console.log('Found it!');}
undefined
> for(var name in window){if(name == "sessionStorage")console.log('Found it!');}
"Found it!"

如何枚举所有全局对象?

1 个答案:

答案 0 :(得分:1)

您可以迭代所有全局对象:

var arr = Object.getOwnPropertyNames(window);
for(var i = 0; i < arr.length; i++){
   window[arr[i]]; // do something
}