如果我 console.log 一个对象,它会输出所有键/值对及其方法。
const obj = {
name: "Mike",
add : function (a, b){
return a + b
}
}
console.log(obj)
但是 try...catch 块中的 error 对象,
console.log(err)
输出类似于“引用错误:变量未定义”的消息(我不确定该消息是否为字符串类型)
try {
variable
}
catch(err) {
console.log(err)
}
为什么它输出消息,而不是键/值对和方法?
console.log()
的参数到控制台消息的底层转换不必总是打印出对象的键值对,并且因环境而异。
console
对象使用 util.format()
进行转换,然后调用 util.inspect()
来格式化对象,这对 Error
对象与普通对象的处理方式不同。然而,我不确定其他浏览器的具体情况,但它们可能也会以不同的方式对待 Error
对象以帮助调试。
这能回答你的问题吗?