Ja, natürlich, Object.keys()
ist die mejor Weg, um die Schlüssel eines Objekts zu erhalten. Wenn es in Ihrer Umgebung nicht verfügbar ist, kann es trivial sein unterbrochen mit Code wie in Ihrem Beispiel (außer dass Sie berücksichtigen müssen, dass Ihre Schleife über alle Eigenschaften in der Prototypenkette iteriert, im Gegensatz zu Object.keys()
Verhalten).
Allerdings ist Ihr Beispielcode...
var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [];
for (var key in foo) {
keys.push(key);
}
jsFiddle .
...könnte geändert werden. Sie können die Zuordnung direkt im variabel Teil.
var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [], i = 0;
for (keys[i++] in foo) {}
jsFiddle .
Natürlich ist dieses Verhalten anders als das, was Object.keys()
tatsächlich tut ( jsFiddle ). Sie könnten einfach die Unterlegscheibe in der MDN-Dokumentation .