将函数调用捕获为字符串

时间:2016-01-28 20:19:22

标签: javascript jquery

使用JS;我传递一个函数名作为可选参数。我想创建一个switch case来读取正在传递的函数名称。我如何捕获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;
  }
}

2 个答案:

答案 0 :(得分:1)

您可以使用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); // ""

答案 1 :(得分:1)

您可以使用functionVariable.name,这是一个示例:

x = function test() {}
console.log(x.name)
// logs "test"