C'est en quelque sorte ce que les fermetures sont censées éviter, mais je me demande s'il existe un moyen d'ajouter une méthode à une fermeture. Fondamentalement, j'ai une bibliothèque de fichiers js que je voudrais augmenter pour un client spécifique en ajoutant une nouvelle méthode.Puis-je ajouter une méthode à une fermeture?
Je dispose d'un fichier js appelé bibliothèque:
var LIBRARY = (function(){
var name;
return {
setName: function(n) { name = n; }
}());
mais pour un nouveau client Je veux leur donner un nouveau fichier js qui vient compléter la bibliothèque, l'ajout d'une nouvelle fonction:
function(first, last){
name = first + " " + last;
}
Je ne veux pas avoir à modifier la bibliothèque js cependant. Est-il possible d'ajouter cette fonction à LIBRARY afin que la fonction ait l'accès nécessaire à la variable name?
j'étais hopin g pour pouvoir aller directement sans exposer la variable name (bien que le setName n'expose qu'un setter, ce n'est pas une idée). Il se peut que vous ayez à suivre cette route – hackerhasid
@statichippo: C'est vraiment votre seule option interdisant (encore) d'utiliser 'eval', qui est juste une boîte de Pandore. –
Je ne considère même pas le chemin eval. eval est juste une lettre loin du mal;) – hackerhasid