在 JavaScript 中获取当前函数的名称
能否在 JavaScript 中动态访问当前正在执行的函数的名称?
问题描述
考虑以下示例:
<code class="javascript">myfile.js: function foo() { alert(<my-function-name>); // pops-up "foo" // or even better: "myfile.js : foo" }</code>
目标是检索函数的名称以及可能的完整位置(文件名:函数名)。这可以实现吗?
解决方案
在 ES5 及更高版本中: 不幸的是,ES5 中没有内置机制来获取函数名称及后续版本。
在较旧的 JavaScript 版本中:在早期版本的 JavaScript 中,可以使用arguments.callee 访问函数名称。然而,这种方法可能需要一些解析,因为返回的值可能包含无关的信息。
解析方法:
<code class="javascript">function DisplayMyName() { var myName = arguments.callee.toString(); myName = myName.substr('function '.length); myName = myName.substr(0, myName.indexOf('(')); alert(myName); }</code>
来源: [ Javascript - 获取当前函数名称](https://stackoverflow.com/questions/4267180/javascript-get-current-function-name)
以上是JavaScript中如何动态获取当前函数的名称?的详细内容。更多信息请关注PHP中文网其他相关文章!