使用JS;我将函数名称作为可选参数传递。我想制作一个开关盒,以读取正在传递的函数名称。如何将functionVariable捕获为字符串“ functionVariable”?

例:

function test(functionVariable)
{
  switch(functionVariable)
  {
    case firstFunction:
    alert('1st');
    break;

    case secondFunction:
    alert('2nd');
    break;
  }
}


当我警告functionVariable时,它将打印整个功能。为什么这样做很有意义,但是我正尝试解决它,只是获得函数名称。

编辑
工作实例

function test(functionVariable)
{
  switch(functionVariable.name)
  {
    case firstFunction:
    alert('1st');
    break;

    case secondFunction:
    alert('2nd');
    break;
  }
}

最佳答案

您可以使用Function.name

function doSomething() {
  // does something
}
console.log(doSomething.name); // "doSomething"


请注意,这仅适用于函数声明和命名函数表达式。未命名的函数表达式将不起作用。

var getA = function getA() {
};
console.log(getA.name); // "getA"

var getB = function() { // Notice the lack of a name
};
console.log(getB.name); // ""

09-30 16:34