Lorsque nous créons un objet avec un constructeur, ses propriétés seront ajoutées à cela. Et les attributs ajoutés à cela ne changeront pas réellement avec l'entité, et pour le moment, notre approche semblera inefficace. Par exemple:
fonction Her () {this.name = 'anna';}Cela signifie que chaque fois que nous créons un objet d'instance avec New Her (), nous générerons un nouvel attribut de nom et auront son propre espace de stockage en mémoire qui appartient à l'attribut. En fait, nous pouvons ajouter l'attribut de nom au prototype, afin que toutes les instances puissent partager cet attribut de nom:
fonction Her () {} her.prototype.name = 'Anna';De cette façon, lorsque nous utilisons New Her () pour créer un objet, l'attribut de nom n'est plus une propriété privée du nouvel objet, mais est ajouté au prototype de l'objet. Bien que cette approche soit très efficace, elle est également pour les propriétés immuables de l'objet d'instance. C'est certain. Si vous modifiez cette propriété, l'attribut de tous les nouveaux objets créés sera modifié. Ce n'est pas ce que nous voulons ~~~. Les propriétés publiques d'un objet conviennent particulièrement à cette approche.
Ici, améliorons un exemple précédent:
function Her () {}; her.prototype.name = 'anna'; her.prototype.tostring = function () {return this.name;} function son () {}; His.prototype = new Her (); His.prototype.constructor = His; His.prototype.sex = «femmes»;Comme vous pouvez le voir, nous terminons généralement la construction de l'héritage pertinent avant d'étendre l'objet prototype, sinon les nouvelles méthodes d'attribut ultérieures dans son prototype peuvent effacer les choses héritées.
fonction enfant (f, m) {this.eat = f; this.don = m;} child.prototype = new His (); child.prototype.constructor = child; child.prototype.name = 'Jok'; child.prototype.fun = function () {return this.eat + this.don}Comme vous pouvez le voir, la différence entre appeler ToString () n'est en fait que le petit nombre d'opérations dans les coulisses. La principale différence est les propriétés, le travail de recherche des méthodes se produira davantage dans le prototype.
La méthode d'implémentation JavaScript ci-dessus pour migrer les attributs partagés vers le 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.