簡體   English   中英

在將變量聲明為函數Object的新實例時,為什么IE6會出現“期望函數”錯誤?

[英]Why does IE6 give a “Function expected” error when declaring a variable as an new instance of a function Object?

為什么在新功能之后必須緊跟括號? MSDN網站尚不清楚為什么這是一個錯誤。

// Fails but only in IE6
var greetings = new SayHello;
greetings();

// This works in IE6
var salutations = new SayHello();

function SayHello() {
 alert("Hello");
};

我認為代碼沒有實現您想像的那樣。 嘗試這種方式:

var greetings = new SayHello;
alert('calling the constructor');
greetings();

function SayHello() {
 alert("Hello");
};

您將首先看到“ Hello”警報,然后是“正在調用構造函數”警報,我認為這與您期望的相反。 new操作員正在調用構造函數並生成警報。 greetings()行實際上會引發類型錯誤,因為那時候greetings只是一個對象(SayHello的實例)。 我猜(因為我沒有副本),當缺少括號時,IE6只是沒有調用構造函數,因此它似乎以不同的方式損壞了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM