Jede JavaScript -Funktion hat ein Prototyp -Attribut (das JavaScript -Objekt hat dieses Attribut nicht). Dieses Attribut bezieht sich auf ein Objekt, das das Prototypobjekt ist. Mit JavaScript können wir dieses Prototypobjekt ändern.
Es gibt 2 Möglichkeiten zu ändern:
Methode 1: Fügen Sie dem ursprünglichen Prototypobjekt Eigenschaften oder Methoden hinzu
Funktion person () {} person.Prototype.add = function () {alert (this.name);}; Person.Prototype.name = "aty"; var p1 = new Person (); p1.add (); // atyMethode 2: Überschreiben Sie das Prototypobjekt um
Funktion person () {} Person.Prototype = {add: function () {alert (this.name);}, Name: "aty"} var p2 = new Person (); p2.add (); // atySie können sehen, dass die beiden oben genannten Methoden den Prototyp ändern können. Was ist also der Unterschied? Welche Methode ist die empfohlene Methode?
Funktion person () {} Funktion Animal () {} var person = new Person (); var Animal = new Animal (); // Ändern Sie den Prototypenperson. personanimal.say (); // Uncornt TypeError: undefined ist keine FunktionWenn Sie zuerst ein Objekt erstellen und dann den Prototyp ändern. Wenn Sie die Methode 1 verwenden, kann das von Ihnen erstellte Objekt den geänderten Prototyp korrekt zugreifen. Wenn Sie Methode 2 verwenden, kann das von Ihnen erstellte Objekt auf den geänderten Prototyp nicht zugreifen. Aus dieser Perspektive ist Methode 1 offensichtlich besser als Methode 2. Warum passiert das?
function Person(){}function Animal(){}var person = new Person();var animal = new Animal();alert(person.__proto__ === Person.prototype);//truealert(animal.__proto__ === Animal.prototype);//true//Modify prototype Person.prototype.say = function(){alert("person");}//Modify prototype Animal.Offensichtlich ist dies "Referenz ändern" und "das Objekt modifizieren, auf das durch Referenz in Java hingewiesen wird", und der Effekt ist derselbe.
Die obige detaillierte Erläuterung des Unterschieds zwischen Modifikation und Umschreibung (Überschreibung) des JavaScript -Prototyps ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.