J'utilise le motif de module dans JavaScript.
Est-ce un moyen de créer des instances d'une "classe"?
Je l'utilise de bonne manière? http://jsfiddle.net/pzlky/
Comment passer des paramètres sur de nouvelles instances? P> p>
3 Réponses :
Pour créer des instances, vous devez utiliser le mot clé nouveau code> avec n'importe quelle fonction.
Cette fonction AKA Constructor peut vous aider à créer plusieurs instances
var moduleClass = (function () {
var a =5;
return {
getA: function () {
console.log(a);
}
};
})();
var instance = new moduleClass;
instance.getA();
Vous avez dit vous-même que neuf code> doit être utilisé avec une fonction B> ...
@Messiah: le code dans la réponse jette toujours une erreur de type lorsque je le colle dans DevTools ...
mais je pense que la chose importante est de comprendre comment le constructeur est utilisé, essayez directement de rédiger la fonction, c'est-à-dire sans le stocker dans une variable.?contactmatt répondit de la Wright Way Way
Vous n'avez pas vraiment besoin de nouvelles ici, ci-dessous est la bonne façon de coder pour réaliser ce que vous essayez de réaliser.
En outre, http://jsfiddle.net/pzlky/2/ p> édition:
ContactMatt a raison, n'ayez certainement pas peur de l'utilisation du constructeur, mais voici quelque chose que vous devez être conscient de P> extrait de l'article de John Resig mentionné dans le premier paragraphe, P> Supposons ceci Votre code P> vraiment prudent tout en utilisant de nouvelles, si elles sont utilisées sous imprudente, il peut commencer à clocer votre variable globale code>, si vous souhaitez utiliser de nouveaux, John Resig a une très belle explication pour comment le faire de la bonne façon, Pour plus lire cet article par John Resig
http://ejohn.org/blog/simple-class-insanti-/
function User(first, last){
if ( this instanceof User ) {
this.name = first + " " + last;
} else
return new User(first, last);
}
Utiliser les fonctions de constructeur. N'ayez pas peur de "nouveau", il suffit d'l'utiliser judicieusement.
Remarque: la convention de nommage standard consiste à nommer des fonctions qui seront utilisées comme constructeurs de fonctions avec une lettre majuscule. (c'est-à-dire moduleclass au lieu de moduleclass) em> p> ou si vous êtes assez courageux pour en savoir plus sur "Ceci" mot-clé en JavaScript. P> function ModuleClass() {
var a =5;
this.getA = function () {
console.log(a);
};
};
var instance = new moduleClass();
instance.getA();
Utilisez une fonction de constructeur au lieu d'un littéral si vous souhaitez transmettre des params au moment de l'instanciation.
Il n'y a pas de construction de classe impliquée dans votre code. Vous venez d'avoir un singleton généré avec le module module. Qu'est-ce que vous veulent i> - seulement nous pouvons vous dire que le code est correct?
Je veux pouvoir déclarer de nouvelles instances et passer des valeurs différentes. Je ne veux pas faire quelque chose de spécifique que j'apprends juste.
Quel shell que
a code> soit? Une variable statique que toutes les instances partageront? Une variable d'instance? Vous n'avez généralement pas besoin du motif de module pour créer un Structure de type de classe en JavaScript .