节点或v8中内置JavaScript类型的参考

节点或v8中内置JavaScript类型的参考,javascript,node.js,function,introspection,Javascript,Node.js,Function,Introspection,我正在编写一些代码,对节点中的函数进行一些内省。具体来说,我希望做一些非标准的JS工作,比如列出源代码行号。但是,在node/v8中似乎没有关于全局类型的参考文档来查看可用的内容 for节点没有此信息。尽管如此,它只列出了标准方法/属性或它自己的非标准扩展。此外,其兼容性图表重点关注浏览器JS引擎。它至少帮助我找到了函数的名称属性 REPL也帮不了我: > function foo() { } undefined > foo [Function: foo] > console.

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

for节点没有此信息。尽管如此,它只列出了标准方法/属性或它自己的非标准扩展。此外,其兼容性图表重点关注浏览器JS引擎。它至少帮助我找到了函数的
名称
属性

REPL也帮不了我:

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

是否有关于全局节点类型的参考文档?

您所说的“全局节点类型”是什么意思?你认为会有任何非标准的方法吗?提示:使用
Object.getOwnPropertyNames
而不是
keys
你是否计划编写一些本机代码,或者你认为如何实现内省?我希望有一种非标准的方法可用,但正如
getOwnPropertyNames
所示,我很抱歉。哦,好吧。
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__');