Je commence tout juste avec la méthode chaining concept en javascript. Je suis conscient de retourner this
aux méthodes de la chaîne, mais j'utilise le modèle de module révélateur ici.Javascript renvoyant la valeur si aucun chaînage de méthode n'est disponible
code:
var currency = (function(){
var rates = {
INR: 64.10
};
function convert(value){
return value * rates["INR"];
//"return this"? and also get the return value (if no chained mathods) ?
}
function format(){
return this.replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,");
}
return {
convert: convert,
format: format
}
})();
Je vais appeler la fonction de deux manières différentes.
- currency.convert (100); // 6410; maintenant il renvoie le taux et c'est prévu
- currency.convert (1000) .format(); // 64,100; cela devrait
Mais le problème est si je return this;
de la fonction convert
comment serait # 1 possible? Si je ne retourne pas this
de la méthode de fonction convert
, le chaînage ne sera pas possible.
Q: convert()
fonction dans ce modèle devrait être en mesure d'effectuer la conversion et retourner la valeur si aucune Enchaînement est demandée et devrait être en mesure d'effectuer enchaînant?
Veuillez ignorer si le format fonctionne mal.
ce modèle n'est pas adapté à enchaînant –
Le seul que j'ai jamais entendu de faire quelque chose comme ceci est la chaîne 'lodash', qui utilise un wrapper pour enchaîner certaines des méthodes. – MinusFour
Vous n'avez pas besoin du "motif de module révélateur". ES6 a des modules réels. Utilise les. En ce qui concerne l'enchaînement, la mode de l'enchaînement est terminée. Personne ne le fait. Il est en train de mourir avec jQuery. –