試圖瞭解爲什麼JavaScript錯誤對象,即「名」和「消息」,兩跨瀏覽器的屬性不能用了「......在」方法Javascript - Error對象的名稱和消息屬性在哪裏?
// error code
...
}catch(err){
// in FF this lists 3 properties for fileName, lineNumber and columnNumber...
// but NOT name or message!
for(var propertyName in err) {
$('#diags').append('err property: ' + propertyName + ',
value: ' + err[ propertyName ] + '<br>');
}
// this line prints fine:
$('#diags').append('Error - name:' + err.name + ', message: ' + err.message + '<br>');
}
編輯找到
我被問到什麼是名稱和消息。這些都是屬性(他們雖然?),所有錯誤都在任何瀏覽器中...所以在上面的代碼中,我添加了額外的代碼行,顯示這些「屬性」或任何他們打印良好
編輯2
以下Mati的有用答案我做了一些搜索。這似乎回答了「檢查」問題:Is it possible to get the non-enumerable inherited property names of an object?
什麼是'name'或'message'? – Amberlamps 2013-03-27 09:25:11
JavaScript錯誤對象在某些瀏覽器中一直有點亂。它應該有一個'.message'屬性。其他任何東西都是專有的。 [本文](https://developer.mozilla.org/en/docs/JavaScript/Reference/Global_Objects/Error)顯示瞭如何標準化Error對象 - 請參閱標題爲「自定義錯誤類型」的部分。 – 2013-03-27 09:39:16
@ Beetroot-Beetroot是的,我找到了那個頁面...因此,我驚訝的是,這兩個「屬性」(如果這是他們是什麼)實際上沒有使用上面的for ... in循環列出...我仍然感到困惑 – 2013-03-27 17:25:49