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.