Eigenschaften und Methoden, auf die alle Fälle in JavaScript in JavaScript zugegriffen werden können. Teil des Wissens.
Grundtypdefinitionen sind wie folgt:
Kopieren Sie den Code -Code wie folgt:
Funktion person () {}
Person.Prototype = {
Konstruktor: Person,
Name: "Person",
Alter: 100,
Freunde: [a "," b "] ,,
GetName: function () {
Kehre diesen namennamen zurück;
}
};
Definieren Sie die Beispiele zweier Person, ändern Sie die Namenseigenschaft in der Instanz (das Attribut ist im Prototyp definiert). Der Testcode lautet wie folgt
Kopieren Sie den Code -Code wie folgt:
var p1 = new Person ();
var p2 = new Person ();
document.write (p1.name+"<br/>");
document.write (p2.name+"<br/>");
p1.name = "p1";
document.write (p1.name+"<br/>");
document.write (p2.name+"<br/>");
document.write (p1.hasownProperty ("name")+"<br/>") gehört zum Objekt zum Objekt.
document.write (p2.hasownProperty ("Name")+"<br/>")
document.write (Object.keys (p1)+"<br/>");
document.write (Object.keys (p2)+"<br/>");
document.write (Object.get.getownPropertynames (Person.Prototype)+"<br/>");
document.write (person.prototype.name+"<br/>");
Nach dem Testen kann festgestellt werden, dass p1.name = "p1" den Wert des Namens nicht ändert, sondern dem Namensattribut ein Namensattribut hinzufügt. Das letztere Objekt.Keys (P1) kann auch sehen, dass in der P1 -Instanz ohne P2 ein zusätzliches Namensattribut vorhanden ist. Die gesamte Übertragung in JS ist eine Wertverkehrsübertragung. Code, um dieses Problem zu veranschaulichen.
Kopieren Sie den Code -Code wie folgt:
var obj = neues Objekt ();
obj.name = "obj";
Funktion ChangeObj (o) {
O.Name = "geändert";
o = neues Objekt ();
O.Name = "Newobj";
}
ChangeObj (OBJ);
document.write (obj.name);
In der Methode der geändertenObj ändert o = new Object () nicht den Wert des Parameters O, sondern schneidet die ursprüngliche Referenzbeziehung ab
Nächster Test, um das Attribut für Freunde im ersten Beispiel im Prototyp zu ändern.
Kopieren Sie den Code -Code wie folgt:
p1.friends.push ("c");
document.write (p1.friends+"<br/>");
document.write (p2.friends+"<br/>");
p1.friends = ["x", "y", "z"];
document.write (p1.friends+"<br/>");
document.write (p2.friends+"<br/>");
document.write (p1.hasownProperty ("Freunde")+"<br/>");
document.write (p2.hasownProperty ("Freunde")+"<br/>") gehört zum Prototyp.
document.write (Object.keys (p1)+"<br/>");
document.write (Object.keys (p2)+"<br/>");
document.write (Object.get.getownPropertynames (Person.Prototype)+"<br/>");
document.write (person.prototype.friends+"<br/>");
Die Testergebnisse sind im Grunde genommen den ersten Test.
Basierend auf diesen beiden Testergebnissen wird festgestellt, dass die Werttypattribute im Prototyp nicht direkt in der Instanz geändert werden können (natürlich sollte dieser Werttyp im Prototyp nicht definiert werden.