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]
}
本答案出自“我要编程”软件开发师训练平台免费课程。