Comment créer des méthodes avec une boucle dans jquery / javascript

Je ne parviens pas à enregistrer certaines méthodes que j’ai créées en boucle dans un object.

ce que je suis en train d’avoir

var scriptList = { components : [ 'all' ], modules : [ 'one', 'two', 'three' ] } function interface() { var scope = this; jQuery.each(scriptList, function(key, value) { jQuery.each(value, function (index, name) { var hookValue = 'hook_'+name; scope.name = function(){ window[hookValue] = jQuery('.js-'+name); loadAndUse(window[hookValue],key+'/'+name); } if(key === 'modules'){ scope.name(); } }); }); } var ui = new interface(); 

Cela fonctionne et fait son travail, mais je veux pouvoir atteindre chaque méthode que j’ai créée à travers la boucle de cette manière: console.log(ui.one());

Et je ne sais pas comment faire quelque chose comme ça puisque si je fais ça:

 function interface() { var scope = this; scope.one = function(){ console.log('one'); } scope.two = function(){ console.log('two'); } scope.three = function(){ console.log('three'); } } 

alors je peux accéder via console.log(ui.one()); sans problème …

Qu’est-ce que je rate? Existe-t-il un moyen que je ne connais pas d’enregistrer la méthode lorsque vous la répétez?

scope.name fait référence à la propriété name sur scope . Si vous souhaitez accéder à une propriété basée sur une valeur de chaîne, vous devez utiliser la notation entre crochets:

 scope[name] = function(){ window[hookValue] = jQuery('.js-'+name); loadAndUse(window[hookValue],key+'/'+name); }