La méthode du constructeur est très utile, mais il y a un gaspillage de mémoire
Les fonctions attribuées par le prototype sont partagées par tous les objets.
Les attributs attribués par le prototype sont indépendants .------ Si vous ne modifiez pas les attributs, ils sont partagés
Si nous voulons que tous les objets utilisent la même fonction, il est préférable d'ajouter des fonctions à l'aide de la méthode Prototype, qui enregistre la mémoire.
exemple:
// ---- mode constructeur
Ajoutez un "type" d'attribut inchangé à l'objet chat, puis ajoutez une méthode manger (manger du rat). Ensuite, le Prototype Object Cat devient le suivant:
<Script> fonction cat (name, couleur) {this.name = name; this.color = couleur; this.type = "feat"; this.eat = function () {alert ("manger souris"); }; } // Générer l'exemple: var cat1 = new Cat ("Big Hair", "Jaune"); var cat2 = new Cat ("manger des cheveux er", "noir"); alert (cat1.type); // feat cat1.eat (); // manger une alerte de souris (cat1.eat == cat2.eat); // faux </cript>Autrement dit, pour chaque objet d'instance, l'attribut type et la méthode EAT () sont exactement le même contenu. Chaque fois qu'une instance est générée, elle doit être du contenu répété et occuper plus de mémoire. Ce n'est ni respectueux de l'environnement ni efficace.
// ---- Mode prototype
JavaScript stipule que chaque constructeur a un attribut prototype pointant vers un autre objet. Toutes les propriétés et méthodes de cet objet seront héritées par les instances du constructeur.
Cela signifie que nous pouvons définir directement ces propriétés et méthodes inchangées sur l'objet Prototype.
<Script> fonction cat (name, couleur) {this.name = name; this.color = couleur; } Cat.prototype.type = "femelle"; cat.prototype.eat = function () {alert ("manger souris")}; // générer une instance. var cat1 = nouveau chat ("gros cheveux", "jaune"); var cat2 = nouveau chat ("2 cheveux", "noir"); alert (cat1.type); // Cat cat1.eat (); // manger une alerte de souris (cat1.eat == cat2.eat); // truef </cript>À l'heure actuelle, les méthodes de type Attributs et EAT () de toutes les instances sont en fait une adresse mémoire, pointant vers l'objet Prototype, améliorant ainsi l'efficacité du fonctionnement.
L'introduction ci-dessus à la différence entre le constructeur JS et le prototype prototype est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.