Object.keys
sucht nach allen eigenen , enumerierbaren Eigenschaften (oh, und Arrays sind schnell). for in
sucht zusätzlich nach geerbten aufzählbaren Eigenschaften, nicht nur nach eigenen for in
+ hasOwnProperty
testet zusätzlich alle nachgeschlagenen Eigenschaften nach, ob es sich um eigene Eigenschaften handelt. Auch wenn es keine ererbten aufzählbaren Eigenschaften gibt, ist es immer noch eine Aufgabe zu erledigen.
Die meisten Tests in diesem Thread zeigen an, dass hasownproperty
schneller ist als Object.keys()
. Für diese Tests ist jedoch die Menge der Eigenschaften, die durchlaufen werden sollen, klein (& lt; 20 Eigenschaften).
Wo immer die Anzahl der Objekteigenschaften groß ist (keine exakte Zahl, Tests mit & gt; 100 Schlüsseln zeigten Object.keys()
als eindeutigen Gewinner), Object.keys()
schlägt es.
Siehe Ссылка . Sie können zum Ende der Seite gehen, um alle Überarbeitungen des Tests zu sehen.
Tags und Links javascript performance