javascript函数是否知道它的名字

时间:2011-04-08 18:49:11

标签: javascript jquery

我有一个名为getItem的函数。我想使用其中的代码读取此函数的名称。这可能吗?

function getItem(){ 
   var functionName =   //how do I read the function name;
   alert(functionName)  //outputs 'getItem'
}

3 个答案:

答案 0 :(得分:3)

试试这个:

function getItem(){ 
   var functionName =   arguments.callee.name;
   alert(functionName)  //outputs 'getItem'
}

这里是小提琴:http://jsfiddle.net/maniator/xGzKA/

另请参阅此previous stack Q以获取其他解决方案

答案 1 :(得分:0)

虽然您可能不应该使用此功能,但您可以为IE,Firefox,Chrome,Safari和Opera执行此操作(我承认arguments.callee尽管表达了有效的保留,但arguments.callee.name很方便{{1}如果Function.name属性是标准的):

function getFuncName (fn) {
    var name = (/\W*function\s+([\w\$]+)\s*\(/).exec(fn);
    return name ? name[1] : '(Anonymous)';
}

答案 2 :(得分:-1)

试试这个,

function getItem(){
    var functionName =  arguments.callee.name;
    alert(functionName);
}

http://jsfiddle.net/XPGxE/