试图理解为什么使用“for ... in”方法找不到Javascript Error对象的两个跨浏览器属性,即“name”和“message”
// 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 的有用回答,我做了一些搜索。这似乎回答了“检查”问题:是否可以获得对象的不可枚举的继承属性名称?