2012-08-04 39 views
0

只是想知道如何測試一個原型是可用的基於它的名字。JS:新窗口[className]停止執行,如果原型沒有找到

例如:

var node = new window[className]; 
console.log('test'); 

沒有打印任何東西,如果所提供的類名不匹配,一直可用的原型。

所以測試:

if(! window[className]) {...} 

做出什麼事情發生,執行只是停止,沒有可用的過去的那點斷點。

我該如何處理這種情況? 謝謝!

+0

你索要'else'分支?你測試哪個'className'? – Bergi 2012-08-04 19:51:56

+0

順便說一句:Javascript沒有「類」。我猜,你搜索的「原型」被稱爲構造函數。 – Bergi 2012-08-04 19:52:55

+0

className是例如「GroundBlock」,如果沒有這樣的原型名稱,代碼就停止。它使用Safari瀏覽器,無法在其他瀏覽器上測試,代碼不兼容:( – Jem 2012-08-04 19:53:18

回答

1

如果希望在className不可用的情況發生什麼,只是用一種simple else statement

if(! window[className]) { 
    ... 
} else { 
    alert("No truthy property '"+className+"' was found on the window object"); 
    throw new Error("something bad happened"); 
    // whatever 
} 
+0

謝謝,似乎缺少一個屬性(在我的情況?)可以通過try/catch語句處理。如果/別的沒有幫助。這是它! – Jem 2012-08-04 21:32:28

+0

你的if語句只檢查'className',沒有什麼更進一步的了。然而,你不應該用try-catch-statements對屬性進行「測試」。 – Bergi 2012-08-04 21:36:32

+0

在這種情況下感覺就像是最後的解決方案: – Jem 2012-08-04 22:05:39