Zuerst die Enumeigenschaften verstehen
Im Allgemeinen verwenden Sie für ~ in Traversal
var a = [1,2,3]; für (var i in a) {console.log (a [i]);} orvar o = {p1: 1, p2: 2}; für (var i in o) {console.log (i+'='+o [i]);} // p1 = 1; p2 = 2;<1> Nicht alle Attribute werden in der für ~ in Traversal angezeigt. Zum Beispiel (Array) Längenattribut und Konstruktorattribut. Die angezeigten Eigenschaften werden als Aufzählung genannt, und die Eigenschaften, die aufzählige Funktionen sind, können von der von jedem Objekt bereitgestellten Methode von PropertyISenumerable () bestimmt werden.
<2> Jedes Attribut in der Prototyp -Kette wird ebenfalls angezeigt, vorausgesetzt, sie sind aufgezählt, HasownProperty (), um festzustellen, ob eine Eigenschaft eines Objekts eine eigene Eigenschaft oder eine Prototyp -Eigenschaft ist.
<3> Für alle Prototyp -Eigenschaften wird PropertyISenumerable () falsch zurückgegeben, einschließlich der aufzählbaren in der für ~ in Traversal.
Beispiel für JS -Code
Funktion Dog (Name, Farbe) {this.name = name; this.color = color; this.somemethod = function () {return 1;}} hunde newdog) {console.log (prop+'='+newdog [prop]);} // name = doggg // color = gelb // somemethod = function () {return 1;} // price = 100 // Rating = 3Newdog.hasownProperty ('name'); // true;Zeigen Sie nur seine eigenen Attribute
für (var prop in newdog) {if (newdog.hasownProperty (prop)) {console.log (prop+'='+newdog [prop]);}} newdog.propertyisenumerable ('Name'); // truenewdog.propertyisenableable ('Constructor').Hinweis: Die meisten integrierten Eigenschaften und Methoden sind nicht aufgezählt.
Alle Attribute aus der Prototypkette sind ebenfalls nicht aufzählbar
Wenn der Anruf bei PropertyISenumerable () aus einem Objekt in der Prototypkette stammt, sind die Eigenschaften in diesem Objekt aufzählbar
newdog.constructor.prototype.propertyisenumerable ('preis'); // trueisprototypeof (): Jedes Objekt hat es und gibt an, ob das aktuelle Objekt ein Prototyp eines anderen Objekts ist
Beispiel für JS -Code
var ende = {hair: true, feds: 'bananas', atmet: 'air'}; function human (name) {this.name = name;} human.prototypDas obige ist die vom Herausgeber vorgestellte HasownProperty (), PropertySenumerable () und Isprototypeof () in JS vorgestellt. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!