我遇到错误时遇到了这个问题,由于错误类/类型/ ....的某些特殊原因,我不知道控制台输出是否以这种方式运行。
try {
throw new Error('sample error')
} catch (ex) {
console.log(ex instanceof Error)
//true
console.log(ex.message)
//sample error
console.log(Object.keys(ex))
//[] fine as i suppose the class/type members exist in prototype
console.log(ex.__proto__)
//{name:'error', message:'', constructor:.... i suppose these are the default properties of Error
console.log(Object.keys(ex.__proto__))
//[] how come empty array still???
}
我想它的最后一个语句console.log(Object.keys(ex.__proto__))
应该返回['name','message'...]。只是想知道我做错了什么。
如何获取javascript错误的原型成员对象键?遇到错误时,我遇到了这个问题,我不知道控制台输出是否以这种方式运行,因为...
Object.getOwnPropertyDescriptor(ex.__proto__, "name")
# => {value: "Error", writable: true, enumerable: false, configurable: true}
name
上不能枚举message
和Error.prototype
属性。但是,您可以使用Object.getOwnPropertyNames
获取可枚举和不可枚举的属性列表: