在node或v8中引用内置JavaScript类型

时间:2015-04-02 16:46:00

标签: javascript node.js function introspection

我正在编写一些代码,这些代码会对节点中的Function进行一些内省。具体来说,我希望有希望做非标准JS之类的事情,比如列出源代码行号。但是,似乎没有关于node / v8中全局类型的参考文档可用于查看可用的内容。

节点的Global Objects documentation没有此信息。虽然MDN documents Function,但它仅列出标准方法/属性或其自己的非标准扩展。此外,其兼容性图表侧重于浏览器JS引擎。它帮助我找到了函数的name属性。

REPL也没有帮助我:

> function foo() { }
undefined
> foo
[Function: foo]
> console.dir(foo)
[Function: foo]
undefined
> Object.keys(foo)
[]
> Object.keys(Function.prototype)
[]
>

是否有任何类型的全局节点类型的参考文档?

1 个答案:

答案 0 :(得分:0)

function allProps(obj, name = '') {
     if (obj == null) return; // recursion to the final link in this prototype chain
     console.log(name, Object.getOwnPropertyNames(obj));
     allProps(Object.getPrototypeOf(obj), 'prototype');
}

allProps(Function, 'Function');
allProps(Function.prototype, 'Function.prototype');
allProps(Function.__proto__, 'Function.__proto__');