2016-04-10 4 views

Antwort

7

Wenn die Eigenschaft abgeblendet dargestellt ist, das bedeutet, dass es nicht zählbare ist. So wird es zeigen sich nicht in, wenn Sie eine Schleife durch die Eigenschaften des Objekts:

den Standort Objekt als Beispiel:

Location logged in console

Wenn die Eigenschaften aufzählt toString, valueOf und __proto__ nicht zeigen up:

var keys = []; for (var key in location) { keys.push(key) }; console.log(keys) 
-> ["replace", "assign", "hash", "search", "pathname", "port", "hostname", "host", 
"protocol", "origin", "href", "ancestorOrigins", "reload"] 

können Sie propertyIsEnumerable verwenden ou zu finden t, wenn die Eigenschaft wird angezeigt, wenn Sie eine Schleife über das Objekt:

location.propertyIsEnumerable("search") 
// true 
location.propertyIsEnumerable("toString") 
// false 

Standardmäßig werden alle Eigenschaften eines Objekts enumerable sind:

post.title is enumerable

Aber Sie können das ändern, indem defineProperty mit:

Object.defineProperty(post, "author", { 
    value: "John Doe", 
    enumerable: false 
}); 

Wenn Sie dieses Objekt in der Konsole protokollieren, erscheint die Eigenschaft author in einem etwas helleren Violett.

(Es scheint, die Kurzform für diese Formatierungsfunktion keine Unterstützung, aber wir können DevTools zwingen, die längere Version für ein kleines Objekt zu verwenden, um die dir Funktion.)

author property isn't enumerable

+1

Super Detail! Vielen Dank –

Verwandte Themen