如何在js函数内部得到本函数的名字

JavaScript05

如何在js函数内部得到本函数的名字,第1张

[javascript] view plain copy

function getFuncName(_callee)

{

var _text = _callee.toString()

var _scriptArr = document.scripts

for (var i=0i<_scriptArr.lengthi++)

{

var _start = _scriptArr[i].text.indexOf(_text)

if (_start != -1)

{

if (/^function\s*.*.*\r\n/.test(_text))

{

var _tempArr = _scriptArr[i].text.substr(0, _start).split('\r\n')

return _tempArr[_tempArr.length - 1].replace(/(var)|(\s*)/g, '').replace(/=/g, '')

str = "func_abc"\x0d\x0a//调用func_abc\x0d\x0aeval(str)\x0d\x0a\x0d\x0a如果要传参数,比如\x0d\x0aeval( str + "( '字符串参数', 123 )" )\x0d\x0a也可以\x0d\x0aeval( "var _function = " + str )\x0d\x0a_function( "字符串参数", 123 )\x0d\x0a没有参数就\x0d\x0a_function()

在js权威指南一书看到过

Function.prototype.getName = function(){

    return this.name || this.toString().match(/function\s*([^(]*)\(/)[1]

}

本答案出自“我要编程”软件开发师训练平台免费课程。