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?
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?
one simple way
eval("SomeFunction()");
or
var funcName = "SomeFunction";
var func == window[funcName];
func();
are you talking about ´eval()´??
var foo = "alert('bar')";
eval(foo);
Hope this helps;
function a() { console.log('yeah!'); } var funcName = 'a'; // get function name this[funcName]();
If the function is global, you should do window[funcName]()
in browser.
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
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.