JavaScript获取Function的名字

如何获取JavaScript中Function的名字是一个很基本的问题。可以通过将function转化成字符串,用substring取它的名字,或者使用ECMAScript 6中的Function.name的支持。此属性只有在IE下有可能不兼容。详见MDN.

关于从字符串中获得其名字的方法如下 (转自stackoverflow):

function functionName(fun) {
  var ret = fun.toString();
  ret = ret.substr('function '.length);
  ret = ret.substr(0, ret.indexOf('('));
  return ret;
}

如其在stackoverflow中提到的,Function.caller是非标准的用法,arguments.callee不在strick mode下支持。

 

posted @ 2014-10-24 22:40  苟日新  阅读(2044)  评论(0编辑  收藏  举报