2016-05-19 14 views
0

I von einem Gesprächspartner gefragt werde, gibt es einen Unterschied zwischen dem folgenden Code:für in Schleife durch Eigenschaften eines Objekts literal VS eines Objekts von Objekt konstruiert initialisiert

var o1 = { 
    a: 1, 
    b: 2, 
    c: 3 
} 

for(var p in o1) { 
    // ... 
} 

vs

var o2 = new Object() 
o2.a = 1; 
o2.b = 2; 
o2.c = 3; 

for(var p in o2) { 
    // ... 
} 

Ich kann mir keinen Unterschied vorstellen, gibt es einen ??

+0

Ich würde versuchsweise nein sagen ... Ich könnte falsch liegen. – Utkanos

+0

Kein Unterschied, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects –

+0

Ich würde auch nein sagen. Aber es kann sich zur Laufzeit unterscheiden (denken Sie darüber nach, welche Seite des '= -Zeichens die verschiedenen Dinge sind). – Arg0n

Antwort

1

Unter der Annahme, dass das Semikolon aus der new Object() Linie fehlt unbeabsichtigt ist, dann gibt es keinen Unterschied ...

http://www.w3schools.com/js/js_object_definition.asp

... außer dass die ersten - nach diesem Kommentar - ausführen schneller.

Die beiden obigen Beispiele machen genau das gleiche. Es besteht keine Notwendigkeit, ein neues Objekt() zu verwenden. Verwenden Sie zur Vereinfachung, Lesbarkeit und Ausführungsgeschwindigkeit die erste (die Objektliteralmethode).

+1

Überweisung 'w3schools' ist keine gute Idee :( – Rayon

+0

@Rayon ... weil ... warum genau? – MichaelK

+0

http://meta.stackoverflow.com/questions/280478/why -not-w3schools-com – Rayon

Verwandte Themen