Comment puis-je appeler dynamiquement la méthode d'un objet JavaScript?

Je pense qu'il me manque quelque chose de très simple ici. Je souhaite transmettre une fonction à un objet et la méthode à appeler. Les raisons pour lesquelles ce post est trop long. 🙂

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 } 

Je vous remercie!

Vous avez besoin de parenthèses sur l'appel, comme ceci:

 obj[funcName](); 

Vous pouvez obtenir eval pour travailler comme ceci:

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

Mais il existe de nombreuses raisons pour ne pas le faire ( sécurité, performance, débogage plus difficile ).

Lorsqu'il s'agit d' obj[funcName](); Vous devez prendre soin de l'instance de l'objet. Si vous souhaitez utiliser une forme de propylene privée, l'objet à l'intérieur de l'appel de fonction, il l'utilisera car il s'agissait d'une propriété statique.