【发布时间】:2020-10-16 08:21:16
【问题描述】:
我在下面有类似的东西。如何获取有关函数 power() 中嵌套了多少函数的信息。正则表达式会起作用吗?
function power(n){
function power2(){
function power3(){
function power4(){
return n*n;
}
return power4();
}
return power3();
}
return power2();
}
let number = power(1);
console.log(number)
【问题讨论】:
-
你想如何统计它们 - 静态的?通过执行它们?另外,为什么你需要那个 - 你确定不是an XY problem?
-
要静态分析源代码,获取一个解析器,将此代码转换为 AST,然后遍历它以查看最深的函数嵌套的深度。
-
有点小技巧,但是 ->
power.toString().match(/return /g).length可以在这里工作。但是对于更强大的解决方案,就像提到的遍历 AST 会更好。 -
@VLAZ 我只想显示嵌套函数的数量。我正在学习 JS,这是我要解决的任务之一。
-
这是一个新手任务吗?它对于初学者来说太复杂了,或者如果它 only 用于此功能并且需要使用初学者工具完成,那么它与静态分析(仅解析字符串)完全无关完成不是你应该做的事情。
标签: javascript nested-function