是否可以通过使用函数内声明的变量来获取函数名称

时间:2014-07-15 10:04:11

标签: javascript function

我可以使用函数中存在的变量来获取函数的名称吗?

function abcd() {
    var temp;
    alert(" name of the function using temp ");
};

如何使用temp?

获取函数'abcd'的名称

2 个答案:

答案 0 :(得分:2)

您可以使用arguments.callee.name,就像这样

function abcd() {
    console.log("name of the function using", arguments.callee.name);
};

abcd();
# name of the function using abcd

注意: arguments.callee.name仅适用于使用名称定义的函数。它不适用于匿名函数。例如,如果您已经定义了您的功能,就像这样

var abcd = function () {
    console.log("name of the function using", arguments.callee.name);
};

abcd()只会打印name of the function using。因为在这种情况下arguments.callee.name将是一个空字符串。

答案 1 :(得分:2)

非严格"模式,您可以使用arguments.callee.name

但总的来说,你不应该 - 从内部知道某个对象或函数的变量是不安全的,因为可能有多个,或者在匿名函数根本没有名字。