Puis-je appeler dynamiquement une méthode objet ayant le nom de la méthode sous forme de chaîne? Je l'imaginerais comme ceci:
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();
Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'FooClass'
quelqu'un d'autre?Les propriétés des objets sont accessibles via la notation de tableau:
la source
Lorsque nous appelons une fonction à l'intérieur d'un objet, nous devons fournir le nom de la fonction sous forme de chaîne.
la source
La méthode peut être appelée avec eval
eval("foo." + method + "()");
peut ne pas être un très bon moyen.la source
foo
est{ fields: [{ id: 1 }] }
etmethod
estfields[0]?.id
, mais j'ai dû supprimer()
de votre proposition de réponseJe voudrais laisser un exemple ici pour cela. Par exemple; Je souhaite appeler une méthode de vérification dynamique lors de la soumission du formulaire.
la source