Ich bin neugierig, warum einige Variablen fest sind und einige Variablen halbe Opazität sind. Was ist der Unterschied zwischen ihnen? Beide Varianten sind im globalen Umfang verfügbar.Was bedeuten die Farben im Bereich "Scope" der Chrome Developer Tools?
Antwort
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:
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:
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.)
Super Detail! Vielen Dank –
Gute Frage . Ich habe ein [Problem] (https://github.com/google/WebFundamentals/issues/2803) erstellt, um dies zu dokumentieren. –