2

I want execute JavaScript function which the name is coming as a string dynamically. I don't need to pass any parameters while executing the function.

Please can any one guide me how to achieve this?

Brian Tompsett - 汤莱恩
5,92772 gold badges64 silver badges135 bronze badges
asked Dec 1, 2011 at 15:25
2

7 Answers 7

1

one simple way

eval("SomeFunction()");

or

var funcName = "SomeFunction";
var func == window[funcName];
func();
answered Dec 1, 2011 at 15:27
Sign up to request clarification or add additional context in comments.

Comments

0

dangerous but you could use eval(method_name+"()")

answered Dec 1, 2011 at 15:26

Comments

0

are you talking about ́eval() ́??

var foo = "alert('bar')";
eval(foo);

Hope this helps;

answered Dec 1, 2011 at 15:29

Comments

0
function a() { 
 console.log('yeah!'); 
}
var funcName = 'a'; // get function name
this[funcName]();
answered Dec 1, 2011 at 15:30

Comments

0

If the function is global, you should do window[funcName]() in browser.

answered Dec 1, 2011 at 15:30

2 Comments

You chould check if it exists with if ("function" === typeof window[funcName])
window[funcName]() it is working in Firefox but not working in IE8 Iam getting error in IE8 is expected identifier
0

Using eval is the worst way imaginable. Avoid that at all costs.

You can use window[functionname]() like this:

function myfunction() {
 alert('test');
}
var functionname = 'myfunction';
window[functionname]();

This way you can optionally add arguments as well

answered Dec 1, 2011 at 15:31

Comments

0

Perhaps a safer way is to do something like this (pseudo code only here):

function executer(functionName)
{
 if (functionName === "blammo")
 {
 blammo();
 }
 else if (functionName === "kapow")
 {
 kapow();
 }
 else // unrecognized function name
 {
 // do something.
 }

You might use a switch statement for this (it seems like a better construct):

switch (functionName)
{
 case "blammo":
 blammo();
 break;
 case "kapow":
 kapow();
 break;
 default:
 // unrecognized function name.
}

You can optimize this by creating an array of function names, searching the array for the desired function name, then executing the value in the array.

answered Dec 1, 2011 at 15:32

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.