Antwort an „Rolf B“ verfassen

Hallo Stefan,

Links zu unserem Wiki:

Eine Map bringt Extrafunktionalität mit, wie die Beibehaltung der Zugangsreihenfolge. Wenn Du die nicht brauchst, kannst Du auch ein prototypenloses Objekt erzeugen. Es bringt auch ein paar Nanosekunden Performance, was aber nur auffällt, wenn Du viele Millionen Zugriffe machen musst.

const objectWithProto = { };
console.log(Object.getPrototypeOf(objectWithProto) == Object.prototype);
// true

const protoFreeObject = Object.create(null);
console.log(Object.getPrototypeOf(protoFreeObject ));
// null

Bei einem prototyplosen Objekt kannst Du die Schlüsel erhalten, wenn Du mit for..in darüber läufst. for..in bezieht die vom Prototyp geerbten Eigenschaften übrigens nicht ein.

Bei einer Map geht das nicht, mit for..in erhältst Du die Eigenschaften der Map - und sie hat keine eigenen. Hier musst Du mit der .forEach Methode arbeiten oder die Iterator-Schnittstelle nutzen, also die for..of-Schleife.

Rolf

--
sumpsi - posui - obstruxi
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen