Ich sah diese "fehlerhafte" Aufruf von new
Stichwort auf Promise.resolve
, aber ich bin überrascht, dass es funktioniert! Kann mir bitte jemand erklären, was passiert, und ob es in irgendeiner Weise anders ist, das Schlüsselwort new
wegzulassen?Stichwort neu auf statische Methode Promise.resolve
new Promise.resolve(1)
Mit Blick auf die MDN Dokumentationen für operator precedence (speziell Zugang für Mitglieder, Function Call und neu (ohne Argumentliste)) und new
keyword, sollte nicht die oben werfen Fehler, da ich nehme an, die Ausdruck wird wie folgt ausgewertet:
new (Promise.resolve(1))
Ich glaube, ich vermisse etwas (offensichtlich) hier. Danke im Voraus!
Hinweis: Die Verwendung drossel Bibliothek 2.x
"Im Wesentlichen wird Promise.resolve als Konstruktor behandelt" Meinst du, dass der obige Ausdruck wie folgt bewertet wird: 'new (Promise.resolve) (1)'? – jwgoh
In JavaScript ist alles im Kern ein Objekt - also weiß 'new' nicht den Unterschied zwischen 'new Promise()' und 'new X()' (wobei 'X = Promise.resolve' steht). Also ja, während Ihre Klammern den Code sehr merkwürdig aussehen lassen, ist die Bewertungsreihenfolge, die sie implizieren, korrekt. –