6
votes

Passer le paramètre à la fonction de fermeture en JavaScript

new MyLibrary.MyModule('c',options);

2 commentaires

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 le constructeur au lieu de attribuer it. Si vous le souhaitez sur certaines valeurs par défaut, vous devez avoir la fonction que vous appelez retour votre constructeur. Comme: mylibrary.mymodule = (fonction (IDID, _OPTIONS) {Retour fonction initiale (ID, options) {/ * Votre corps de fonction * /};}) (ID, options); Je ne sais pas si c'était votre raison de le faire de cette façon.


3 Réponses :


7
votes

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);


0 commentaires

5
votes

Votre mylibrary.mymodule code> est non défini code>. C'est parce que vous appelez une fonction anonyme sans valeur de retour pour vous assigner.

Je suppose que vous vouliez faire cela à la place: P>

var inst = new MyLibrary.MyModule('c',options);


0 commentaires

0
votes

Vous voulez quelque chose comme ceci: xxx


0 commentaires