Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I dynamically call a JavaScript object's method

I think that I'm missing something very simple here. I want to pass a function an object and the method to call. The reasons why are too long for this post. :-)

var myObj = new someObject();
var funcName = "hide";

function callObject(myObj,funcName){
    obj.hide(); //this works     
    obj[funcName]; //doesn't work
    obj.eval(funcName); //doesn't work either.. tried many variations
}

Thank you!

like image 955
David Avatar asked Feb 25 '11 01:02

David


1 Answers

You need the parenthesis on the call, like this:

obj[funcName]();

You can get eval to work like this:

eval("obj." + funcName + "()");

but there are many reasons not to do that (security, performance, harder debugging).

like image 70
Samuel Neff Avatar answered Sep 20 '22 10:09

Samuel Neff