De nos jours, de nombreuses personnes utilisent des objets JS pour implémenter du code après avoir appris JSP, mais dans JavaScript, les objets JS sont un langage dynamique. De nombreux amis qui ne font que commencer seront curieux de savoir quelles sont les méthodes d'écriture orientées objet de JavaScript? Quelle est la différence? Permettez-moi maintenant d'expliquer les méthodes et les différences d'écriture orientées objet JavaScript.
Dans JS, il existe généralement deux façons de mettre en œuvre la POO:
Le premier: utilisez ce mot-clé
Fonction Class1 ()
{
this.onclick = fonction (e)
{
pour (var i = 0; i <1000; i ++)
{
var a = new Date ();
}
}
}
En utilisant ceci. La méthode peut ajouter des propriétés et des méthodes aux objets de manière flexible, et elle est similaire à la plupart des langues OOP, et peut même être ajoutée pendant le fonctionnement.
Le deuxième type: utilisez des mots clés prototypes
fonction Clickfunc (e)
{
pour (var i = 0; i <1000; i ++)
{
var a = new Date ();
}
}
Classe de fonction 2 ()
{
}
Class2.prototype.onclick = clickfunc;
En termes d'utilisation, il n'y a pas de premier qui semble flexible. Cependant, avant qu'un objet ne soit nouveau, vous pouvez également ajouter les propriétés et les méthodes d'un objet à tout moment.
Mais ils ne sont pas égaux. Relativement parlant, je préfère le premier car la première méthode est relativement concentrée et plus facile à lire le code. Cependant, lors de la course, leur efficacité opérationnelle varie considérablement. Jetons un coup d'œil au code de test ci-dessous:
var total = new Array ();
Fonction Test1 ()
{
var a = new Date ();
pour (var i = 0; i <10000; i ++)
{
var c = new class1 ();
//total.push(c);
}
var b = new Date ();
alert (b.getTime () - a.getTime ());
}
Fonction Test2 ()
{
var a = new Date ();
pour (var i = 0; i <10000; i ++)
{
var c = new class2 ();
//total.push(c);
}
var b = new Date ();
alert (b.getTime () - a.getTime ());
}
La première étape consiste à tester le temps d'exécution: on constate que Test1 () prend 142 ms, tandis que Test2 () ne prend que 50 ms. En termes d'efficacité du temps, la méthode prototype est plus efficace que cela.
La deuxième étape des objets JavaScript consiste à tester l'utilisation de la mémoire, à supprimer les commentaires sur Total.push (c); au total.push (c); afin qu'ils soient ajoutés au tableau pour empêcher les objets non référencés d'être GC lorsqu'il y a beaucoup d'objets lorsqu'ils sont créés. En conséquence, il a été constaté que l'écart n'était pas très important. La première méthode a pris vingt ou trente m de mémoire, tandis que la deuxième méthode ne nécessitait plus d'une centaine de K.
JavaScript Créer un objet
Provoquer une inférence:
Lors du traitement de ces deux codes, le premier type est JS Parser, ce qui crée une méthode distincte pour chaque objet, ce qui augmente les frais généraux de mémoire et augmente le temps d'exécution lors de la création de méthodes. Le deuxième type est que JS Parser, comme la plupart des compilateurs OOP, stocke séparément les segments de données et les segments de méthode de l'objet. Pour les données privées de l'objet, une copie par objet, et ces méthodes sont placées dans le segment des méthodes publiques, de sorte que le temps d'exécution et les frais généraux de mémoire peuvent être réduits.
Ce qui précède est l'éditeur de Fo Xin pour expliquer les différences dans les méthodes d'écriture orientées objet et les différences de JavaScript. Si vous voulez en savoir plus profondément, vous pouvez vous rendre sur Fo Xin Technology Channel pour comprendre.