Does anyone know if there is one?
I want to call a function using a variable name.
I posted a fiddle here with what I\'m trying to do:
If a function is defined at the global level, then it automatically becomes a child of the window object.
Therefore you can always call window.functionName(); any place you would normally just call functionName();.
Further, since in Javascript objects work like associative arrays, you can call any child of any object using array syntax like this: object['childName']. This includes functions, so you can do object['functionName'](); for any function which is a member of an object.
Combining these two points together, you can call any globally defined function like so:
window['functionName']();
And since functionName in the above example is a string, you can use a variable in those brackets, which means you've got the same functionality as PHP's call_user_func().
[EDIT]
As I stated, this works for any object. The OP's comments state that the functions he wants to use this way are in a JQuery plug-in. They are therefore likely to be part of the JQuery object, and would normally be called like so: JQuery().functionName(); (or with the $ in place of JQuery).
Javascript syntax allows us to use ['functionName']() in any place where we can use .functionName(), so therefore, taking the above JQuery example, we could change it to look like this:
JQuery()['functionName']();`
But this technique can be adapted for any Javascript object. Any place where you use .functionName(), it can be replaced with ['functionName']().