首页 > 解决方案 > 获取 ES6 类方法的名称

问题描述

当我在我的程序中打印有用的错误时,我想沿着方法名称打印。因此,例如在下面的模拟代码中,当控制台登录时goodMorning,我想通过调用getMethodName函数在打印输出中嵌入名称“goodMorning”或“Hello.goodMorning”;该函数现在只返回“goodMorning”,但我希望它返回调用它的任何方法的名称(它可能需要一些参数才能做到这一点)。

const getMethodName = () => {
    return 'goodMorning'
}

class Hello {
  goodMorning () {
    console.log(`I am inside ${getMethodName()} method`)
  }
}

new Hello().goodMorning()

标签: javascriptes6-class

解决方案


我希望这是你的要求

const getMethodName = () => {
  var functionName = new Error().stack.match(/at (.*?) /);
  return functionName[1]
}

class Hello {
  goodMorning() {
    console.log(`I am inside ${getMethodName()} method`)
  }
}

new Hello().goodMorning();

更好的是,您可以直接尝试捕获错误而无需调用任何特定函数


推荐阅读