如何获取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);
};