代码之家  ›  专栏  ›  技术社区  ›  RLH

在JS实例中是否有获取所有库对象的方法?

  •  2
  • RLH  · 技术社区  · 15 年前

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

    1 回复  |  直到 11 年前
        1
  •  2
  •   Andy E    15 年前

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

    本地对象(如Math、Array和Date)是全局对象的不可枚举成员,这意味着您不能使用 for...in 循环。这涵盖了“否”部分——在许多浏览器中,无法通过迭代获得这些对象。

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

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

    会给你一份全球所有成员的名单 窗口 对象,包括数学、数组、日期等。