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?

2

7 Answers 7

1

one simple way

eval("SomeFunction()");

or

var funcName = "SomeFunction";
var func == window[funcName];
func();
Sign up to request clarification or add additional context in comments.

Comments

0

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

Comments

0

are you talking about ´eval()´??

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

Hope this helps;

Comments

0
function a() { 
   console.log('yeah!'); 
}

var funcName = 'a'; // get function name

this[funcName]();

Comments

0

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

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

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.

Comments

Your Answer

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.