Update: Während die Antwort unten technisch genau ist, und ein weiterer Unterschied zwischen den beiden Methoden ist, @ Ori Drori die Antwort ist fast sicher, was das OP sucht.
Ich nehme einen Stich, aber mehr Kontext wäre hilfreich. Normalerweise verhalten sich diese beiden Anweisungen in der Regel gleich, aber es gibt einen entscheidenden Unterschied - wenn Sie das Schlüsselwort new
verwenden, ruft der Javascript-Interpreter den Array-Konstruktor auf. Wenn Sie den Array-Konstruktor überschreiben, gilt dies nur für arr2
, die mit dem neuen Schlüsselwort definiert wurde. arr1
erstellt mit dem Array-Literal wäre immer noch ein Javascript-Array.
Als Beispiel lassen Sie uns sagen, dass ich den folgenden Code geschrieben:
function Array() {
}
Methode 1 noch funktionieren würde, aber Methode 2 zurückkehren würde eine Typeerror, dass die Füllung anzeigt, ist keine Funktion.
Interessanterweise ruft die Verwendung des Array-Literals (Methode 1) immer noch den Array-Konstruktor auf. Wenn ich also eine console.log("test");
innerhalb der Array-Konstruktion erstellte, würde dies immer noch auf der Konsole ausgegeben werden. ABER, wenn das Array-Literal (Methode 1) verwendet wird, bleibt das Objekt selbst ein Standard-Javascript-Array, auch wenn der Array-Konstruktor überschrieben wird.
* nicht schaffen - wie so? – Li357