列出Node.js中的所有全局变量

时间:2015-07-01 23:48:04

标签: javascript node.js

我正在尝试列出所有全局变量,包括那些引用built-in objects的变量。

在Chrome控制台中,我只需输入this即可取回所有密钥,包括StringNumber等内容。

然而,当我在Node.js中执行此操作时,我得到的更少:

> Object.keys(this)
[ 'global',
  'process',
  'GLOBAL',
  'root',
  'Buffer',
  'setTimeout',
  'setInterval',
  'clearTimeout',
  'clearInterval',
  'setImmediate',
  'clearImmediate',
  'console',
  'module',
  'require',
  '_' ]
> this.eval
[Function: eval]

this.eval来自哪里?

3 个答案:

答案 0 :(得分:5)

以下globals()函数将获取全局命名空间对象:

function globals() { return this; }

有了它,您可以随时列出全局命名空间的所有变量:

function varsList() {
  return Object.getOwnPropertyNames(globals());
}

答案 1 :(得分:5)

全局对象的内置属性是不可枚举的,因此Object.keys不会返回它们。您可以改为使用Object.getOwnPropertyNames

答案 2 :(得分:2)

您可以使用Object.getOwnPropertyNames(this) 如果不传递“ this”作为引用或对象所有者属性的参数,则getOwnPropertyNames()函数将不会返回任何内容。

回答有关评估来源的问题,请查看此链接。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval

相关问题