new MyLibrary.MyModule('c',options);
3 Réponses :
Comme écrit, je ne pense pas que cela va faire quelque chose comme ce que vous voulez. Vous initialisez "mylibrary.mymodule" pour être fondamentalement rien; Il n'y a pas de valeur de retour de cette fonction "initialisée" et vous l'appelez comme s'il en avait une.
Je ne peux pas dire ce que vous essayez de faire, mais: p>
MyLibrary.MyModule = (function whatever() { /* ... */ })(id, options);
Votre Je suppose que vous vouliez faire cela à la place: P> mylibrary.mymodule code> est
non défini code>. C'est parce que vous appelez une fonction anonyme sans valeur de retour pour vous assigner.
var inst = new MyLibrary.MyModule('c',options);
Vous voulez quelque chose comme ceci:
J'ai commencé avec quelque chose comme ça (sans fermeture), puis je pensais essayer de refroidir la fonction dans une fermeture. MyLibrary.mymodule = fonction initiale (ID, options) {this.id = id;}
Avec votre refacteur, vous êtes invoquant i> le constructeur au lieu de attribuer i> it. Si vous le souhaitez sur certaines valeurs par défaut, vous devez avoir la fonction que vous appelez retour i> votre constructeur. Comme:
mylibrary.mymodule = (fonction (IDID, _OPTIONS) {Retour fonction initiale (ID, options) {/ * Votre corps de fonction * /};}) (ID, options); CODE> Je ne sais pas si c'était votre raison de le faire de cette façon.