Constructeurs JavaScript utilisant la notation littérale d'objet JavaScript
Quelle est la meilleure façon de construire des constructeurs en JavaScript à l'aide de l'objet de la notation littérale?
var myObject = {
funca : function() {
//...
},
funcb : function() {
//...
}
};
Je veux être en mesure d'appeler
var myVar = new myObject(...);
Et de passer des arguments à une fonction constructeur à l'intérieur de myObject.
source d'informationauteur mrwooster
Vous devez vous connecter pour publier un commentaire.
C'est pas "la notation JSON", c'est le JavaScript objet littéral notation. JSON est un sous-ensemble de JS objet littéral de la notation, mais en dehors de la recherche semblables, ils n'ont rien en commun. JSON est utilisé comme l'échange de données format, comme XML.
Il n'est pas possible ce que vous voulez faire.
crée déjà un objet. Il n'y a rien que vous pouvez instancier.
Vous pouvez toutefois créer une fonction constructeur et ajouter les méthodes de son prototype:
Chaque objet que vous instancier avec
new MyObject()
héritent des propriétés du prototype (en fait, les instances juste obtenir une référence à l'objet prototype).Plus à propos de JavaScript objets et à l'héritage:
Update2:
Si vous avez d'instancier plusieurs objets de même nature, puis utiliser une fonction constructeur + prototype. Si vous avez seulement besoin un objet (comme un singleton), alors il n'est pas nécessaire d'utiliser une fonction constructeur (la plupart du temps). Vous pouvez directement utiliser l'objet littéral de notation pour créer cet objet.
Faire l'objet d'une fonction, comme ceci:
Désolé d'être en retard à la fête, mais... je pense que dire que cette n'est pas possible est un peu restrictif, selon la façon dont vous interprétez les OP de la question et les commentaires ultérieurs.
En supposant que l'OP voulait le namespacing avantages que l'objet de la notation littérale peut apporter à une bibliothèque, mais également voulu avoir certaines "classes" à utiliser au sein de cette structure. Ne pourriez-vous pas utiliser quelque chose de cette forme de combiner constructeur modèles à un objet littéral notation préfixée structure de la bibliothèque?
Ils sont stupides exemples, mais il n'existe aucune raison de ne pas le faire, ou pourquoi ce n'est pas valable? Il se débarrasse de la global des problèmes de surpopulation que les gens en général, l'utilisation de l'objet littéral de notation pour les bibliothèques.
La façon la plus simple que je sais c'est:
vous ne pouvez pas créer un nouvel objet de la précédente de cette façon
mais vous pouvez obtenir la même chose avec en dessous de construire,