等效于Javascript中的Python目录

当我从解释器编写Python代码时,我可以键入dir()以获取在当前作用域中定义的名称列表。 当我使用交互式控制台(如Firebug,Chrome控制台等)从浏览器开发Javascript代码时,如何以编程方式实现具有相同的信息?

Paolo asked 2020-08-03T08:56:19Z
6个解决方案
24 votes

对象中有“键”方法,例如:

Object.keys(object)

但是,此返回对象仅具有自己的属性和方法。
要列出对象的所有属性和方法,我知道2种可能性:
1. Firefox和Firebug控制台中的console.dir(object)方法
2. Google Chrome开发工具中的dir(object)方法。

Andrey answered 2020-08-03T08:57:16Z
14 votes

如果您需要一个简单的解决方案,这可能对您有用:

function dir(object) {
    stuff = [];
    for (s in object) {
        stuff.push(s);
    }
    stuff.sort();
    return stuff;
}
dmitry_romanov answered 2020-08-03T08:57:36Z
8 votes

在ChatZilla的代码中,有几个功能可以做到这一点,您必须正确检查许可证,以查看是否可以将它们撕下来并在任何地方使用。

相关功能可以在以下位置找到[http://hg.mozilla.org/chatzilla/file/59b46c0bf716/js/lib/utils.js#l136]dumpObjectdumpObjectTree

Glenjamin answered 2020-08-03T08:56:39Z
4 votes

Google Chrome开发者工具控制台有一个预定义的目录:[https://developers.google.com/chrome-developer-tools/docs/console]

Firebug具有console.dir:[http://getfirebug.com/logging]

Protector one answered 2020-08-03T08:58:00Z
2 votes

全局变量保存在易于访问的对象(window)中,因此您可以轻松地检查/迭代它们。 (使用类似Glenjamin建议的功能)

另一方面,我不知道有什么方法可以检查在函数或闭包中定义的局部变量-如果可能的话,我至少会猜测这将是高度针对浏览器/控制台的。

hugomg answered 2020-08-03T08:58:25Z
1 votes

很好,您可以看到对象仅包含其自身的属性:它可以在任何控制台中运行,不仅是Google Chrome浏览器,而且还可以在img中输入图片描述console.dir(obj);此处链接:[https://developers.google.com/web/tools/chrome-devtools/console/console-reference]

AmitNayek answered 2020-08-03T08:58:45Z
translate from https://stackoverflow.com:/questions/5523747/equivalent-of-pythons-dir-in-javascript