有没有办法获取JS实例中的所有库对象?

时间:2010-11-15 14:54:56

标签: javascript

是否有一种方法可以迭代JavaScript实例中存在的所有对象,而不管正在使用的JavaScript引擎?我对迭代网页的DOM不感兴趣。我想知道的是,是否有一种方法可以遍历所有标准库对象(数组,数学,日期等)以及可能特定于各种浏览器的任何其他库。

1 个答案:

答案 0 :(得分:2)

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

Math,Array和Date等本机对象是全局对象的不可枚举成员,这意味着您无法使用for...in循环对它们进行迭代。这涵盖了“不”部分 - 在许多浏览器中无法通过迭代获得这些对象。

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

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

将为您提供全局window对象的所有成员列表,包括数学,数组,日期等。