Sans dire que je débute, je suis pas un as non plus en javascript tant je le pratique trop peu.
Je suis en train d'organiser mon code pour une sorte de petit routeur dans un single page et là j'arrive au moment ou j'aimerais pouvoir dire à mon code d’exécuter tel action de tel module en fonction de mes variables action et mocule. Cependant j'aimerais le faire de manière dynamique, non pas avec de simple condition (si module = unModule => fais ceci). J'ai bien compris le coup du window[variable] ou dans un objet js this[variable] mais si je veux par exemple executer une fonction dans un objet alors la j'arrive pas du tout à imaginer la semantique :
var _Action_ = function(){
this.module = 'chanter';
this.action = 'fort';
this.executer = function(){
this.chanter = {
fort : function(){
alert('Je chante fort');
},
doucement : function(){
alert('Je chante doucement');
}
};
/* ici j'aimerais executer ma fonction du style :*/
this[module].this[action]();
/* Mais je me rend bien compte que ça va pas le faire*/
};
};
var Routeur = {
url: null,
redirection: function() {
console.log("Redirection vers " + this.url);
}
}
Dans le code que tu as présenter, ta variable _Action_ est une fonction. Tu ne peux pas utiliser this dans ce cas.
- Edité par Chikuma Koshiro 12 décembre 2018 à 23:38:25
Executer une fonction dans un objet de manière dyn
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.