Lassen Sie uns zunächst ein Mini -Programm eines einfachen Konstruktor+Prototyps -Objekts haben
Funktion createObj (uname, uage) {this.username = uname; }Es gibt kein Problem in diesem Programm, aber jede Methode wird erweitert. Wir müssen ein Prototyp -Objekt schreiben. :
CreateObj.prototype = {showUserage: function () {return this.userage;}, showusername: function () {return this.username; );Das Schreiben dieses Prototyp -Objekts gehört jedoch zum Standard -Prototyp -Objekt von CreateObj.
Vor dem Umschreiben zeigt Konstruktors auf Erstellen der Erstellung
Funktion createObj (uname, uage) {this.username = uname; } console.log (createObj.prototype.Constructor === CreateObj);Nach dem Umschreiben verweist Constructor auf Objekt
CreateObj.prototype = {showUserage: function () {return this.userage;}, showusername: function () {return this.username; .Constructor === Objekt);Daher kann Constructor das Objekt nicht genau identifizieren, da er geändert wird
Die zuvor geschriebenen Prozeduren werden im Grunde genommen auf dem Prototyp -Objekt (Prototyp) erweitert und dann die sofortigen Objekte ansehen, zuerst das Objekt institutionalisieren und dann die Funktion auf dem Prototyp erweitern.
Kann das Instanzobjekt die Erweiterung normal aufrufen?
Funktion createObj (uname, uage) {this.username = uname; } console.log (obj1.showusername ());Es kann normal aufgerufen werden, aber wenn das Prototypobjekt umgeschrieben wird, wird es nicht aufgerufen
Funktion createObj (uname, uage) {this.username = uname; ;}} console.log (obj1.showusername ());Da das Prototyp -Objekt gleichzeitig neu geschrieben ist, tritt dies vor dem Umschreiben auf. Der Wert des Referenztyps erhalten alle anderen Instanzen das Ergebnis nach der Änderung.
Funktion createObj () {} createObj.prototype = {name: 'ghostwu', Fähigkeiten: ['PHP', 'JavaScript', 'Linux']}; Python ');Die Freigabefunktion des Prototyps kann bequem sein, um einige Methoden für einige erstellte -In -Objekte wie das Array zu erweitern, um sie zu wiederholen
Array.Prototype.unique = function () {var res = []; = - 1) {res.push (this [i]);}} return res;} var anrr = [10, 20, 30, 30, 20, 40, 20]; ; // 10, 20, 30, 40Erweitern Sie die Methode jedoch nicht beiläufig.
Das oben genannte ist der Inhalt dieses Artikels.