Ich habe folgenden Code erhalten, indem ich einige Änderungen an der kompilierten Version von Typoskript-Code einer Demoklasse vorgenommen habe.neuer Operator auf eingeklammerte Klammerfunktion (IIFE)
function f() {
function Demo() {
console.log("Inside constructor");
}
return Demo;
}
var Demo = (f)();
console.log("Creating instance");
var demo = new Demo();
// Output
// Creating instance
// Inside constructor
Nach dem Entfernen von IIFE ich bekam,
function f() {
function Demo() {
console.log("Inside constructor");
}
return Demo;
}
var Demo = f;
console.log("Creating instance");
var demo = new Demo();
// Output
// Creating instance
Im ersten Fall, der Konstruktor auf dem Aufruf von Demo ausgeführt. Im zweiten Fall führte das Aufrufen von Demo keinen Konstruktor aus. Wie verhält sich der Operator new
in jedem Fall?
Es geht nicht um 'new' Schlüsselwort, geht es um' var Demo = (f)(); '' vs var Demo = f; ' – Rayon