Pourquoi la plupart des frameworks javascript utilisent des littéraux d'objet au lieu de constructeurs ou de constructeurs avec des prototypes? Est-ce que ce sera non standard si quelqu'un utilise des constructeurs avec des prototypes dans un nouveau framework. des littéraux d'objet sur les constructeurs avec des prototypes?Pourquoi la plupart des frameworks javascript utilisent des littéraux d'objet
Répondre
Tout dépend du besoin du programme que vous écrivez et de la façon dont vous voulez maintenir la base de code.
Lorsque vous avez beaucoup d'objets instanciés avec des propriétés et des méthodes partagées, il peut être plus efficace dans le sens de la mémoire d'utiliser un constructeur et de remplir son prototype.
Lorsque le code est plus ou moins un singleton, il est probablement plus efficace de simplement créer un objet et de le remplir avec certaines méthodes.
Si vous souhaitez plus d'informations sur « modèles » et ce qu'ils peuvent signifier pour vous, vous pouvez consulter http://addyosmani.com/resources/essentialjsdesignpatterns/book/
Ou si vous le souhaitez un habitué (e) livre que je recommande http://shop.oreilly.com/product/9780596806767.do
Existe-t-il un cadre utilisant l'approche prototype? –
Il y a quelques cadres qui utilisent l'approche du prototype, le premier qui apparaît dans ma tête est (sans jeu de mots) "Prototype". – PM5544
Je suppose que vous voulez dire comment jQuery définit automatiquement les objets jQuery/$? réponse simple ... c'est plus simple comme ça. Pouvez-vous imaginer à quel point jQuery serait confus pour les nouveaux utilisateurs s'ils devaient inclure les deux lignes suivantes dans chaque page?
var jQuery = new jQuery();
var $ = jQuery;
Mais que se passe-t-il si ce code est dans jQuery? –
Je pense que vous parlez en utilisant {}
vs new Object()
et []
vs new Array()
.
La version littérale dans les deux cas est souvent plus rapide (bien sûr cela dépend du navigateur). Vous bénéficiez également de l'avantage de pouvoir définir des propriétés dans un objet ou des éléments dans un tableau dès le début. Cela rend le code plus léger et plus lisible.
var o = {
a: 1,
b: 2,
c: 3,
d: 4
};
// vs.
var o = new Object();
o.a = 1;
o.b = 2;
o.c = 3;
o.d = 4;
var a = [1, 2, 3, 4, 5];
// vs.
var a = new Array();
a.push(1, 2, 3, 4, 5);
Modifier: J'ai fait des tests de performance pour objects et arrays. Pour moi, les littéraux d'objets étaient en fait un peu plus lents dans Chrome. Les littéraux de tableau étaient beaucoup plus rapides, cependant. La syntaxe est toujours préférée, cependant.
Mais Si vous instanciez plusieurs fois l'objet, le prototype utilise moins de mémoire car vous ne recréez pas l'objet entier avec toutes ses méthodes. Le prototype est sympa car il vous permet de créer une nouvelle méthode à la volée et d'utiliser toutes les fonctions de cet objet. Syntactiquement c'est moche et je préfère l'objet littéral. Mais si vous construisez une application massive et la performance est un gros problème, alors le prototype est probablement la voie à suivre non?
- 1. Pourquoi la plupart des frameworks JavaScript utilisent-ils des noms de variables aussi courts?
- 2. Pourquoi les frameworks utilisent-ils des redirections côté client?
- 3. Pourquoi la plupart des gens utilisent-ils des routes avec un ID utilisateur?
- 4. Pourquoi Java est utilisé par la plupart des banques?
- 5. Comment concaténer des littéraux regex en JavaScript?
- 6. Pourquoi la plupart des paquets thirdpary de symfony2 utilisent un peu de yml et très peu d'annotations pour la configuration?
- 7. Pourquoi parfois des erreurs Ruby littéraux hachage avec des blocs
- 8. Trouver la plupart des enregistrements.
- 9. Stocker des variables avec des littéraux d'objet Javascript
- 10. Constante des pointeurs et des littéraux
- 11. Littéraux d'objet JavaScript et littéraux de tableau
- 12. pourquoi tous les widgets de la grille javascript utilisent div?
- 13. Pourquoi les frameworks populaires utilisent-ils la manipulation bytecode en interne?
- 14. Comportement des littéraux String confus
- 15. Littéraux de fonction Javascript?
- 16. Pourquoi construire une chaîne Clojure en utilisant des caractères littéraux?
- 17. Dépendance des frameworks Omnigroup
- 18. Quelle est la syntaxe des tableaux littéraux dans Free Pascal?
- 19. Frameworks MVC Javascript et Frameworks côté serveur
- 20. Attraper la plupart des exceptions dérivées?
- 21. champs identiques dans la plupart des tables
- 22. Comment obtenir la plupart des sharedPreferences récents
- 23. De nombreux frameworks utilisent le format côté serveur et le traitement Javascript?
- 24. Chaîne concaténation en JavaScript avec des littéraux de citation
- 25. Pourquoi les frameworks Python retournent-ils les dictionnaires des contrôleurs?
- 26. Pourquoi la plupart des machines ne peuvent-elles pas traiter des bits individuels?
- 27. Y a-t-il de grands sites web qui utilisent des frameworks?
- 28. La plupart des hôtes partagés gèrent-ils des fichiers gzippés?
- 29. Utilisation de `this` avec des littéraux d'objet
- 30. Des frameworks pour construire des applications web
Ce sont deux choses complètement différentes ... Peut-être que certains exemples de code pourraient clarifier votre intention. – jondavidjohn