Javascript 是否有可能检查函数是否有另一个函数的内部调用?
假设我有以下功能:Javascript 是否有可能检查函数是否有另一个函数的内部调用?,javascript,Javascript,假设我有以下功能: function function1(n) { function function2() { function function3() { function function4() { return n * 2; } return function4() } return function3() } return function2() } 第一件事是,如果我在JS中
function function1(n) {
function function2() {
function function3() {
function function4() {
return n * 2;
}
return function4()
}
return function3()
}
return function2()
}
第一件事是,如果我在JS中有选项来检查我是否在function1中调用了一个函数?例如,我在另一个JS文件中有这个函数,我不知道它里面是什么,我只知道Function1的名称
第二件事如果第一件不可能,如何检查我是否确切知道Function1中函数的名称(例如,我知道里面应该是function2),是否有可能只检查我是否有这个函数在里面
我刚刚开始我的JS冒险,所以请理解和耐心:)不清楚你想用这个功能做什么,所以这可能是一个问题 但是,从技术上讲,您可以使用不推荐使用的属性来检查哪个函数调用了当前正在运行的函数;可能与受良好支持的属性结合使用以获取调用方函数的名称。
function1.toString()
将提供函数的全文(而不是其执行的结果),因此从这里开始,您可以寻找调用函数的方法(例如,括号前的内容)
一个未经证实的例子:
功能1(n){
函数function2(){
功能3(){
函数function4(){
返回n*2;
}
返回函数4()
}
返回函数3()
}
返回函数2()
}
常量正则表达式=/.\(\)/g
const result=function1.toString().match(regex).filter(x=>x.search(/function/)<0)
console.log(结果)
您为什么需要知道这一点?这似乎是一件奇怪的事情,即使作为JavaScript专家也需要知道。你想解决什么更大的问题?太好了,这正是我需要的。我必须阅读更多关于regExp和过滤的内容来分析你的想法,非常感谢!