Puis-je appeler dynamiquement une méthode d'objet dont le nom de méthode est une chaîne? J'imagine ça comme ça:
var FooClass = function() {
this.smile = function() {};
}
var method = "smile";
var foo = new FooClass();
// I want to run smile on the foo instance.
foo.{mysterious code}(); // being executed as foo.smile();
si le nom de la propriété est stocké dans une variable, utilisez []
foo[method]();
Les propriétés des objets sont accessibles via la notation tableau:
var method = "smile";
foo[method](); // will execute the method "smile"
la méthode peut être appelée avec eval eval("foo." + method + "()");
pourrait ne pas être une très bonne solution.
Lorsque nous appelons une fonction dans un objet, nous devons fournir le nom de la fonction sous forme de chaîne.
var obj = {talk: function(){ console.log('Hi') }};
obj['talk'](); //prints "Hi"
obj[talk]()// Does not work