2010-11-15 67 views
2

是否有一种方法可以遍历JavaScript实例中存在的所有对象,而不管正在使用的JavaScript引擎如何?我对迭代网页的DOM不感兴趣。我想知道的是,是否有一种方法可以遍历所有标准库对象(Array,Math,Date等)以及任何可能特定于各种浏览器的附加库。有没有获得JS实例内的所有库对象的方法?

回答

2

不......是的。 window对象是浏览器中的全局对象。它包含全局范围的所有本地成员,以及为DOM提供的所有功能和属性。

像Math,Array和Date这样的本机对象是全局对象的非枚举成员,这意味着您无法使用for...in循环遍历它们。这涵盖了“否”部分—在许多浏览器中无法通过迭代获取这些对象。

但是,使用ECMAScript第5版的实现(IE 9,Chrome 7,Firefox 4),您可以使用Object.getOwnPropertyNames()获取特定对象的属性名称数组。例如,

console.log(Object.getOwnPropertNames(window)); 

会给你的全球window对象的所有成员,包括数学,数组,日期等

+1

这里指向明显的列表,而是指全局对象使用'this'在全局范围内(因为在浏览器的上下文之外没有'window') – Zecc 2010-11-15 16:42:18

相关问题