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