搜索函数名(Javascript)

搜索函数名(Javascript),javascript,Javascript,你好 除了arguments.callee.toString().match之外,还有其他方法可以找到函数名吗?例如,创建另一个带有循环的函数来搜索名称 我的所有函数都命名为: function mthdSearch() { console.log("test0") }; function funkA() { console.log("test1"); } function funkB() { console.log("test2"); } 正如我在评论中所说,从

你好

除了
arguments.callee.toString().match
之外,还有其他方法可以找到函数名吗?例如,创建另一个带有循环的函数来搜索名称

我的所有函数都命名为:

function mthdSearch() {
    console.log("test0")
};

function funkA() {
    console.log("test1");
}


function funkB() {
    console.log("test2");
}

正如我在评论中所说,从总体上看,这是不可能的

您可以通过在另一个函数的本地(即在本地作用域内)声明函数,然后尝试在该函数的作用域之外按名称访问声明的函数来构造反例:

(函数(){
函数f(){console.log(“f”)}
var g=函数g(){console.log(“g”);};
h=函数h(){console.log(“h”);};
f();
g();
h();
})();
试试{f();}
catch(e){console.log(e.message);}
试试{g();}
catch(e){console.log(e.message);}
试试{h();}

catch(e){console.log(e.message);}
尝试将它们全部放在一个对象中,并使用您想要实现的具体功能?请注意,
arguments.callee
在严格模式下已被弃用和删除:您应该更具体地说明您想要做什么。是否要测试给定名称的函数是否存在?在这种情况下以及存在全局对象的情况下,全局声明的函数可以从全局对象访问。也就是说,
函数f(){console.log(“调用'f');}
将可在
窗口
对象上访问(
窗口.f()
将打印到控制台)。@FK82,我是我们公司的一名新手,我被分配了一项任务,要知道是否可以搜索函数名,比如说在
console.log
中编写函数名。我找到了
参数。被调用方
,但您必须在每个函数中编写它吗?正如库巴所说,它在严格模式下被弃用。@KirillVorobjov从总体上看,这是不可能的,因为范围太广。这是一个反例:。如您所见,如果您不在匿名函数的范围内,则无法访问名为
f
h
的函数,因此无法访问它们的名称。