Beide Eigenschaften werden von Object.Prototype: Object.Prototype.hasownProperty () und Object.Prototype.ISPropertyof () bereitgestellt.
Erklären Sie zuerst die Methode und Verwendung von HasownProperty (). Erklären Sie die Methode isPropertyof () und verwenden Sie
Verstehe diese zumindest, du musst die Prototypkette verstehen
1. Object.Prototype.hasownProperty ()
Überblick
HasownProperty () -Methode wird verwendet, um festzustellen, ob ein Objekt eine bestimmte Eigenschaft enthält
Grammatik
obj.hasownProperty ("Eigenschaftsname"); // Ob die Instanz obj die Eigenschaften in Klammern enthält, falls es wahr ist, sonst ist es falsch
beschreiben
Alle Objekte, die Objekt erben. Diese Methode erkennt, ob ein Objekt eine bestimmte Eigenschaft enthält. Im Gegensatz zu in dieser Methode ignoriert diese Methode Eigenschaften, die aus der Prototypkette geerbt wurden.
Beispiel
1. Verwenden Sie die Methode von HasownProperty (), um festzustellen
Das folgende Beispiel erkennt, ob das Objekt O ein eigenes Attribut -Requisit enthält:
var o = new Object (); o.prop = "exists"; function Change () {O.Newprop = O.Prop; lösche o.prop;} o.hasownProperty ("prop") // TrueChange () // Die Prop -Eigenschaft von O.HasownProperty ("Proption") // // kehme.2. Der Unterschied zwischen Ihren eigenen Attributen und den ererbten Attributen
Die folgenden Spalten zeigen den Unterschied zwischen der Methode von HasownProperty () behandelt ihre eigenen Eigenschaften und ererbten Eigenschaften.
var o = new Object (); o.prop = "existiert";
3. Nachdem die Prototypkette geändert wurde, ist das zeigte Beispiel von HasownProperty ()
Die folgenden Spalten zeigen den Unterschied zwischen der Methode von HasownProperty () in den Vererbungseigenschaften nach der Modifizierung der Prototypkette.
var o = {name: 'jim'}; function person () {this.age = 19;} Person.Prototype = o; // Die Prototyp einer Person modifizieren, um auf P.HasownProperty ("Name") zu verweisen, das ererbte Name Attribut P.HasownProperty ("Age") nicht beurteilen kann; // wahr;V.
Die folgenden Spalten zeigen, wie Sie erbliche Attribute ignorieren, während Sie ein Objekt durchqueren und seine eigenen Attribute erhalten.
HINWEIS ・ Forin durchquert die aufzählbaren Eigenschaften in der Objektvererbung
var o = {Geschlecht: 'ma'} Funktion person () {this.name = "zhang san"; this.age = 19;} Person.Prototyp = o; var p = new Person () () für (var k in p) {if (p.hasownProperty (k)) {console.log ("original -Eigenschaften:"+k)/ // name, ag. {{original ("original. Eigenschaften an anderer Stelle: "+k); // Geschlecht}}5. HasownProperty -Methode kann überschrieben werden
Wenn ein Objekt eine eigene Methode von HasownProperty () hat, wird die Methode von HasownProperty () auf der Prototyp -Kette überschrieben
var o = {Geschlecht: 'männlich', hasownProperty: function () {return false;}} o.hasownProperty ("Geschlecht"); // return false, wenn Sie nichts // Lösungsmethode, verwenden Sie die Call -Methode ({}).2. Object.Prototype.riprototypeof ()
Überblick
isprototypeof () Methoden testet, ob ein Objekt in der Prototypkette eines anderen Objekts vorhanden ist
Grammatik
// Ist Object1 der Prototyp von Object2? Das heißt, Object2 ist der Prototyp von Object1. Wenn dies der Fall ist, gibt es wahr, ansonsten FalseObject1.riprototypeof (Object2);
beschreiben
Mit der IsPrototypeof () -Methode können Sie überprüfen, ob ein Objekt in der Prototyp -Kette eines anderen Objekts vorhanden ist.
Beispiel
1. Verwenden Sie IsPrototypeof (), um zu überprüfen
var o = {}; Funktion person () {}; var p1 = new Person (); // vom ursprünglichen Prototyp geerbt, aber jetzt ist es unmöglich, auf Person zuzugreifen. console.log (o.riprototypeof (p2)); // true ist o Ein Prototyp von p22. Verwenden Sie IsPropertyof (), um zu überprüfen
var o = {}; Funktion person () {}; var p1 = new Person (); // vom ursprünglichen Prototyp geerbt, aber jetzt ist es unmöglich, auf Person zuzugreifen. console.log (o.isprototypeof (p2)); // true o ist der Prototyp von p2 console.log (Object.Prototype.isprototypeof (p1)); // TrueConsole.log (Object.Prototype.isprototypeof (p2)); // true true true true.Die Prototyp -Kettenstruktur von p1 ist p1 => Die ursprüngliche Person.Prototype => Objekt.Prototyp => null
Die Prototypkettenstruktur von p2 ist p2 => o => Objekt.Prototyp => null
Sowohl P1 als auch P2 haben Objekt.Prototypen, sodass sie beide auf der Prototyp -Kette von Object.Prototypen stehen
3. Zusammenfassung
1. HasownProperty: Wird verwendet, um festzustellen, ob ein Objekt über eine Eigenschaft oder ein Objekt verfügt, das Sie den Namen angegeben haben. Es ist jedoch zu beachten, dass diese Methode nicht überprüfen kann, ob die Prototypkette des Objekts diese Eigenschaft hat, die ein Mitglied des Objekts selbst sein muss.
2. IsPrototypeOF wird verwendet, um festzustellen, ob das Objekt überprüft, ob seine Prototypkette in der angegebenen Objektinstanz vorhanden ist. Wenn es so ist, gibt es wahr zurück, sonst gibt es falsche zurück.
Das obige ist eine detaillierte Erläuterung der von dem Editor vorgestellten Attributbeispiele von HasownProperty () und IsPrototypeof (). Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!