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

Is it possible to get the function name by using the variable declared inside the function

本文关键字:函数 变量 获取 声明 可以通过 内部 是否      更新时间:2023-09-26

我可以使用函数内部存在的变量获得函数的名称吗?

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

如何使用temp获得函数'abcd'的名称?

您可以使用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将是一个空字符串

在"非严格"模式下可以使用arguments.callee.name

但一般情况下你不应该这样做——假设对象或函数的变量的任何信息都是由内部知道的是不安全的,因为可以有多个变量,或者在匿名函数的情况下根本没有名称