我通過對演示類的typescript代碼的編譯版本進行了一些修改得到了以下代碼。圓括號包裝函數(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
去除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
在第一種情況下,在演示的調用執行構造函數。在第二種情況下,調用Demo不會執行構造函數。 new
運營商在每種情況下的行爲如何?
這不是關於'new'關鍵字,它是關於'VAR演示=(F)();''VS變種演示= F;' – Rayon