如何在JavaScript函数中获取函数名称?

时间:2010-01-29 10:52:39

标签: javascript function typeof

如何学习我所在的职能名称?

以下代码提醒'对象'。但我需要知道如何警告“外面”。

function Outer(){

    alert(typeof this);

}

3 个答案:

答案 0 :(得分:23)

这将有效:

function test() {
  var z = arguments.callee.name;
  console.log(z);
}

答案 1 :(得分:15)

我认为你可以这样做:

var name = arguments.callee.toString();

有关详细信息,请查看this article

function callTaker(a,b,c,d,e){
  // arguments properties
  console.log(arguments);
  console.log(arguments.length);
  console.log(arguments.callee);
  console.log(arguments[1]);
  // Function properties
 console.log(callTaker.length);
  console.log(callTaker.caller);
  console.log(arguments.callee.caller);
  console.log(arguments.callee.caller.caller);
  console.log(callTaker.name);
  console.log(callTaker.constructor);
}

function callMaker(){
  callTaker("foo","bar",this,document);
}

function init(){
  callMaker();
}

答案 2 :(得分:3)

当前答案已过期。从ES6开始,您可以使用Function.prototype.name。这具有使用箭头功能的额外好处,因为它们没有自己的参数对象。

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

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