Objektobjekte in JavaScript sind die Basisklasse aller Objekte in JS, dh alle Objekte in JS werden von Objektobjekten abgeleitet. Objektobjekte werden hauptsächlich verwendet, um willkürliche Daten in Objektform zu integrieren.
1. Einführung in die Objektklasse
Die Objektklasse ist die Basisklasse (übergeordnete Klasse) aller JavaScript -Klassen und bietet eine einfache Möglichkeit, benutzerdefinierte Objekte zu erstellen, ohne dass Programmierer Konstruktoren definieren müssen.
2. Haupteigenschaften der Objektklasse
1.Constructor: Objektkonstruktor.
2.Prototyp: Erhalten Sie das Prototypobjekt der Klasse statische Eigenschaft.
3. Hauptmethoden der Objektklasse
1. HasownProperty (EigentumName)
Bestimmt, ob das Objekt ein spezifisches Attribut hat. Diese Eigenschaft muss mit einer Zeichenfolge angegeben werden, z. B. obj.hasownProperty ("Name"), der einen booleschen Wert zurückgibt. Diese Methode kann nicht überprüfen, ob die Prototypkette des Objekts diese Eigenschaft hat. Es muss ein Mitglied des Objekts selbst sein.
var str = ""; alert ("Str.hasownProperty (/" split/") ist:"+Str.hasownProperty ("Split")); // return falsealert ("string.prototype.hasownProperty (/" split/") ist:"+string.prototype.hasownProperty ("split")); // true zurückgebenAuslaufergebnisse:
Die Verwendung von HasownProperty ist nicht nur hier. In JQuery besteht ein unverzichtbarer Schritt beim Schreiben von Plug-Ins darin, Parameter zu initialisieren. Eine der sehr wichtigen Methoden ist $ .extend (); Sein Prinzip ist es, die Methode von HasownProperty () anzuwenden; Verwenden Sie für die Schleife, um Objektelemente zu durchqueren, wenn Objektelemente gleicher Name sind, falls es vorhanden ist, ersetzen Sie den alten durch das neue Objektmitglied. Auf diese Weise können wir die Parameteränderungen in der Methode ändern, um den Prozess des Programms zu steuern. Für diejenigen Teile, die sich nicht geändert haben, können wir den Standardwert weiterhin verwenden, um ihn zu steuern. Wir können diese Erweiterungsfunktion auch wie folgt simulieren
Funktion erweitert (Ziel, Quelle) {// Ziel -Old Quelle neu für (var i in Source) {if (target.hasownProperty (i)) {Ziel [i] = Quelle [i];}} return target;} var a = {"First":, "Second": "Lyl", "Dritten": ". a) {alarm (a [i]); // ursprünglich war es Bob, aber jetzt ist es Leo geworden}2.Irprototypeof (Objekt)
Bestimmen Sie, ob das Objekt ein Prototyp eines anderen Objekts ist.
OBJ1.Sriprototypeof (OBJ2);
OBJ1 ist eine Instanz eines Objekts; OBJ2 ist ein weiteres Objekt, das seine Prototypkette überprüft. Prototypketten können verwendet werden, um die Funktionalität zwischen verschiedenen Instanzen desselben Objekttyps zu teilen. Wenn die Prototyp -Kette von OBJ2 OBJ1 enthält, gibt die ISPrototypeof -Methode true zurück. Wenn OBJ2 kein Objekt ist oder obj1 in der Prototyp -Kette in OBJ2 nicht erscheint, gibt die ISPrototypeof -Methode false zurück.
<script type = "text/javaScript"> Funktion foo () {this.name = 'foo';} Funktion bar () {} bar.prototype = new foo (); var goo = new bar (); alert (goo.name); //fooalert(Bar.Prototype.riprototypeof(goo));//strue, wenn es das aktuelle Objekt in der Prototyp -Kette von Balken gibt, gibt die Isprototypeof -Methode echte </script> zurück3.Propertyisenumerable (PropertyName)
Durch diese Methode können wir feststellen, ob das Mitglied dieses Objekts durchquert werden kann. Wenn es durchquert wird, beweist es, dass dieses Objekt mit einem für in Schleifen durchquert werden kann.
Das Format lautet wie folgt: Obj.Propertyisenumerable (Eigentumsname)
Wenn PropertyName in OBJ vorhanden ist und mit einem für… in Schleife ausführlich aufgezählt werden kann, gibt die PropertySenumerable Property true zurück. Wenn das Objekt nicht über die angegebene Eigenschaft verfügt oder die angegebene Eigenschaft nicht aufgezählt ist, gibt die Eigenschaft iSenumerable Eigenschaft FALSE zurück. In der Regel sind vordefinierte Eigenschaften nicht aufgezählt, während benutzerdefinierte Eigenschaften immer aufzählbar sind.
4.ToString (): Geben Sie die dem Objekt entsprechende Zeichenfolge zurück
5. valueof (): Gibt den dem Objekt entsprechenden ursprünglichen Typ zurück
Die obigen 5 Methoden sind auf Object.Prototyp definiert. Alle Objekte in ECMascript werden aus dem Objekt vererbt, sodass alle Objekte auf ECMascript verschiedene Methoden haben.
Testcode 1:
var p = new Object (); // Erstellen Sie ein Objekt direkt über Objekt // Dynamisches Attribut P.age =; P.Name = "克到到到到" für P -Objekte; // Erweitern Sie die Objektklasse und fügen Sie ein Show -Methode hinzu. Ent.Write ("<pre>"); document.writeLn ("P.Constructor:"+P.Constructor); // Erhalten Sie das Konstruktor -Dokument des Objekts. document.writeln ("p.prototypeof (p):"+p.risprototypeof (p)); document.writeln ("P.HasownProperty (/" Alter/"):"+P.HasownProperty ("Alter"); Dokument.WriteLn ("P.Property iSenumerable (/" AGEMELABLE ("AGEMELTER (/" AGEMENS/"AUTEL/"): "+P.Propertyisenumerable (" Alter ")); document.writeln (" p.toString (): "+p.ToString ()); document.writeeln (" p.ValueOf (): "+p.ValueOf ()); document.write (" </pre> ");Auslaufergebnisse:
Testcode 2:
var car = function () {}; car.prototype.hello = function () {alert ("Hallo Car");}; var car = new car (); car.f = function () {alert ("benutzerdefinierte Methode");} document.write ("<pre>"); document.writeln ("car.hasownty (/" f/") ist: "+car.hasownProperty (" f ")); // ture, CAR -Objekt hat F -Methode -Dokument. document.WriteLN ("car.hasownProperty (/" Hallo/")"+car.hasownProperty ("Hallo")); // false, weil das Auto selbst nicht das Hello -Methode -Dokument hat. // Falsch, ohne diese Methode, natürlich das Ergebnis von document.writeln ("car.constructor.prototype // true, der Prototyp des Auto -Klassenautos hat das Hello -Methode -Dokument. document.WriteLN ("car.prototype.hasownProperty (/" hello/") und das Ergebnis ist:"+car.Prototype.hasownProperty ("Hallo"); // wahr, der Prototyp des Autos des Autos hat das Hello -Methode -Dokument. "+Car.Prototype.Propertyisenumerable (" Hallo ")); document.write (" </pre> ");Auslaufergebnisse:
Das obige ist eine detaillierte Erklärung der Objektklasse in JS, die der Editor Ihnen vorgestellt hat, einschließlich der Zusammenfassung der JavaScript -Wissenspunkte (elf). Ich hoffe, es wird Ihnen hilfreich sein.