javascript - 从函数内部获取函数名称

标签 javascript

是否可以从函数内部获取函数的名称?
示例:

function myFunction() {

  // console.log the name of this function without knowing/specifying what the name is
  // otherwise console.log('myFunction was called'); is 
  // more obvious (and better supported) than console.log(myFunction.name);
  // console.log(arguments.callee.name); works but not in strict mode and is deprecated
}

引用:
Function.name
arguments.callee

更新:
从评论和回答来看,似乎完全没有捕获要点。
我修改了示例以使其更加清晰。

更新2:
似乎仍然存在歧义...这是一个调试过程的示例:

function one() {
  console.log(arguments.callee.name + ' was called'); // one was called
  // reset of the code
}

function two() {
  console.log(arguments.callee.name + ' was called'); // two was called
  // reset of the code
}

function three() {
  console.log(arguments.callee.name + ' was called'); // three was called
  // reset of the code
}

function four() {
  console.log(arguments.callee.name + ' was called'); // four was called
  // reset of the code
}

function five() {
  console.log(arguments.callee.name + ' was called'); // five was called
  // reset of the code
}

arguments.callee.name 已弃用,并且在严格模式下不可用。
我正在寻找一种未弃用且在严格模式下工作的方法。

最佳答案

试试这个...

console.log(myFunction.name);

请注意,如上所述,IE 尚不支持此功能 here

关于javascript - 从函数内部获取函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29091913/

相关文章:

php - 我们可以根据客户的时间在php中设置一个cookie吗?

javascript - 在 $.Deferred.done() 中调用很快

javascript - 从现有对象创建新的 javascript 对象

javascript - React 应用程序中 JS 中的输入条目上的值未更新

javascript - 如何使用 npm 将自定义模块导入 babel-jest 测试?

javascript - 通过键 JavaScript 从关联数组调用函数

javascript - 过滤箭头函数 (ES6)

javascript - 如何检查哪个 Javascript 文件插入了哪些代码?

javascript - 匹配特殊字符之间的最后一个字符串

javascript - Chrome 中的文本文件到 Var - Javascript