我看到了Error.prototype.toString实现here。
它主要将error.name
和error.message
打印为name + ': ' + msg
。
但是当我将Error
对象传递给console.log
时,我发现file not exists
错误会将更多属性打印为errno, code, syscall
等。
console.log
调用什么来打印Error对象的字符串摘要?
代码:
var fs = require('fs')
fs.readFile('/abcd', 'utf8', function(err, res){
console.log("the error toString method shows, " + err)
console.log("the console log's string summary is,")
console.log(err)
})
输出:
the error toString method shows, Error: ENOENT: no such file or directory, open '/abcd'
the console log's string summary is,
{ [Error: ENOENT: no such file or directory, open '/abcd'] errno: -2, code: 'ENOENT', syscall: 'open', path: '/abcd' }
答案 0 :(得分:1)
未指定console.log,因此每个浏览器都实现了不同的东西。 (和Node.js一样)如果你想看到究竟是什么,你可以查看浏览器源代码,当然除了IE / Edge之外。
在Node.js中,我假设您使用的是require
,代码为: