Ja, es gibt einen Unterschied, sie sind nicht dasselbe. Es stimmt zwar, dass Sie die gleichen Ergebnisse erhalten, aber die Maschine arbeitet bei beiden auf unterschiedliche Weise. Einer von ihnen ist ein Objektliteral und der andere ist ein Konstruktor, zwei verschiedene Arten der Erstellung eines Objekts in Javascript.
var objectA = {} //This is an object literal
var objectB = new Object() //This is the object constructor
In JS ist alles ein Objekt, aber Sie sollten sich der folgenden Sache mit new Object() bewusst sein: Es kann einen Parameter erhalten, und je nach diesem Parameter wird eine Zeichenkette, eine Zahl oder einfach ein leeres Objekt erstellt.
Zum Beispiel: new Object(1)
wird eine Zahl zurückgegeben. new Object("hello")
eine Zeichenkette zurückgibt, bedeutet dies, dass der Objektkonstruktor die Objekterzeugung - abhängig vom Parameter - an andere Konstruktoren wie Zeichenkette, Zahl, usw. delegieren kann. Es ist sehr wichtig, dies zu beachten, wenn Sie dynamische Daten verwalten, um Objekte zu erstellen...
Viele Autoren empfehlen, den Objektkonstruktor nicht zu verwenden, wenn Sie stattdessen eine bestimmte literale Notation verwenden können, bei der Sie sicher sein können, dass das, was Sie erzeugen, auch das ist, was Sie in Ihrem Code erwarten.
Ich schlage vor, dass Sie eine weitere Lektüre über die Unterschiede zwischen literaler Notation und Konstruktoren auf Javascript zu tun, um mehr Details zu finden.