Nodejs 如何获取调试器等函数的原型

Nodejs how to get the prototype of a function like the debugger

提问人:bugdayci 提问时间:11/15/2023 最后编辑:bugdayci 更新时间:11/16/2023 访问量:24

问:

在 Nodejs 中,我正在尝试获取定义如下函数的原型名称:

AgreementSchema.statics.saveAgreement = function(){...}

当我检查 Web-storm 调试器时,它可以获取它的类型并显示它。我尝试了不同的东西,如 prototype.constructor.name 等,但由于它被定义为匿名函数,因此它不起作用。

您可以查看下面的调试器屏幕截图,并看到“model.saveAgreement.prototype”与“AgreementSchema.statics.saveAgreement”一起显示。

enter image description here

有没有办法像调试器一样将此函数的名称作为 String 获取?

JavaScript 节点 .js 构造函数 原型

评论

1赞 Bergi 11/15/2023
否,此信息仅适用于调试器。stackoverflow.com/questions/24658510/...... stackoverflow.com/questions/20668358/...... stackoverflow.com/questions/65727549/...... stackoverflow.com/questions/64491766/......
0赞 Bergi 11/15/2023
"您可以看到 “model.saveAgreement.prototype” 与 “AgreementSchema.statics.saveAgreement” 一起显示 - 是的,但这只是因为它认为原型对象是 “class” 的 “实例”。所以这不是“原型名称”,而是类名(或:函数本身的名称)。当然,除了这个函数永远不应该被用作构造函数,它甚至不应该有一个.将其定义为普通方法,它将具有正常的 .saveAgreement.prototype.name
0赞 somethinghere 11/15/2023
解决这个问题不起作用吗?这是一个匿名功能,只是去匿名化吗?AgreementSchema.statics.saveAgreement = function saveAgreement(){...}
0赞 bugdayci 11/16/2023
@somehinghere 好吧,它适用于这个,但是我们对所有模式对象函数都有相同的结构。所以这是一个普遍的问题

答: 暂无答案