为什么console.log(error_object)输出错误消息而不是它的键/值对和方法?

问题描述 投票:0回答:1

如果我 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)
}

为什么它输出消息,而不是键/值对和方法?

javascript try-catch
1个回答
0
投票

console.log()
的参数到控制台消息的底层转换不必总是打印出对象的键值对,并且因环境而异。

例如,NodeJS 中的

console
对象使用
util.format()
进行转换,然后调用
util.inspect()
来格式化对象,这对
Error
对象与普通对象的处理方式不同。然而,我不确定其他浏览器的具体情况,但它们可能也会以不同的方式对待
Error
对象以帮助调试。

这能回答你的问题吗?

© www.soinside.com 2019 - 2024. All rights reserved.