Bien sûr, Object.keys()
est le meilleur moyen d'obtenir un Objet avec les touches. Si il n'est pas disponible dans votre environnement, il peut être trivialement calée à l'aide de code comme dans votre exemple (sauf que vous devez prendre en compte votre boucle va se répéter sur toutes les propriétés de la chaîne de prototype, à la différence de Object.keys()
s'comportement).
Cependant, votre exemple de code...
var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [];
for (var key in foo) {
keys.push(key);
}
jsFiddle.
...pourrait être modifié. Vous pouvez faire la cession à droite dans la variable de la partie.
var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [], i = 0;
for (keys[i++] in foo) {}
jsFiddle.
Bien sûr, ce comportement est différent de ce que Object.keys()
ne fait (jsFiddle). Vous pouvez simplement utiliser la cale sur le MDN documentation.