Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取JavaScript函数中的函数名?_Javascript_Function_Typeof - Fatal编程技术网

如何获取JavaScript函数中的函数名?

如何获取JavaScript函数中的函数名?,javascript,function,typeof,Javascript,Function,Typeof,如何才能知道我所使用的函数的名称 下面的代码提醒“对象”。但我需要知道如何提醒“外部” 我认为你可以做到: var name = arguments.callee.toString(); 有关这方面的更多信息,请参阅 这将有助于: function test() { var z = arguments.callee.name; console.log(z); } 从ES6开始,您可以使用。这还有使用箭头函数的额外好处,因为它们没有自己的对象参数 function logFuncNam

如何才能知道我所使用的函数的名称

下面的代码提醒“对象”。但我需要知道如何提醒“外部”


我认为你可以做到:

var name = arguments.callee.toString();
有关这方面的更多信息,请参阅

这将有助于:

function test() {
  var z = arguments.callee.name;
  console.log(z);
}
从ES6开始,您可以使用。这还有使用箭头函数的额外好处,因为它们没有自己的对象参数

function logFuncName() {
  console.log(logFuncName.name);
}

const logFuncName2 = () => {
  console.log(logFuncName2.name);
};

不幸的是,
参数。被调用方
已被弃用,但由于ECMA尚未定义任何替代,这就是解决方法。@boldewyn:经过进一步搜索,我也看到了这一点。但尽管它已被弃用,但在大多数浏览器中仍然可以使用。就像你说的,没有别的选择了^^@Boldewyn,
参数。被调用方
不仅仅是不推荐的。启用严格模式时,访问它将导致TypeError。我不确定arguments.callee是否已弃用。Function.arguments和Function.arguments.callee是,但不是函数参数的callee属性。来自MDC:-JavaScript 1.4:不推荐将被调用方作为Function.arguments的属性,保留它作为函数的局部arguments变量的属性。是@meouw引用的源代码。我很好奇,在什么情况下,您所使用的函数的名称实际上不是在代码中写出的名称?@bryantsai:
window[window.prompt('function name:','')=function(){alert(arguments.callee.name);}可能重复不想使用函数自己的名称如何?类似于“this.name”的内容,其中“this”表示“this function”而不是“this class”?他们应该将其设置为
function.name
[this.function].name
function test() {
  var z = arguments.callee.name;
  console.log(z);
}
function logFuncName() {
  console.log(logFuncName.name);
}

const logFuncName2 = () => {
  console.log(logFuncName2.name);
};