Is it possible to get the name of a function that is passed as anargument?

A

Adam Lipscombe

Folks

If a function accepts another function as an parameter like this:

function myFunc(func)
{
alert("func = " + func);
}


The alert print the entire function definition.


Is there any way to easily extract just the function name from the func argument?


e.g. "func = function1" instead of "func = function function1() {.....}"


I know one could use string slicing but I wondered if there was a canonical solution?



Thanks - Adam
 
S

scripts.contact

Folks

If a function accepts another function as an parameter like this:

function myFunc(func)
{
alert("func = " + func);

}

The alert print the entire function definition.

Is there any way to easily extract just the function name from the func argument?

e.g. "func = function1" instead of "func = function function1() {.....}"

function xxxx (){}

function alertName(func){
var match=func.toString().match(/^[\n\s]*function (.*?)[ \(]/i)
if(match)alert(match[1])
}

alertName(xxxx)

--or you can try something like:
function xxxx(){}
function alertName(func){
func=func.toString();
var w=window;
for(var i in w)
if(w&&w.toString()==func)return(i)
return "????"
}
alert(getName(xxxx))
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,997
Messages
2,570,241
Members
46,831
Latest member
RusselWill

Latest Threads

Top