📅  最后修改于: 2023-12-03 14:44:38.063000             🧑  作者: Mango
Node.js中有许多输出控制台信息的方法,其中console.dir()
方法可以打印一个对象的所有属性和方法列表,非常适用于调试。
console.dir(obj, options)
以下是一个演示如何使用console.dir()
方法的示例:
const myObj = {
name: 'John',
age: 30,
hobbies: ['reading', 'writing', 'coding'],
address: {
street: '123 Main St',
city: 'Anytown',
state: 'CA'
}
};
console.dir(myObj);
输出结果如下:
{ name: 'John',
age: 30,
hobbies: [ 'reading', 'writing', 'coding' ],
address:
{ street: '123 Main St',
city: 'Anytown',
state: 'CA' } }
options
参数是一个带有以下属性的对象:
customInspect
:布尔值,如果为false
,则隐藏对象的自定义inspect()
函数。默认为true
。depth
:数值,指定显示对象的嵌套层数。默认为2
。showHidden
:布尔值,指定是否显示对象的隐藏属性。默认为false
。colors
:布尔值,指定是否在控制台输出使用ansi颜色。默认为false
。compact
:布尔值,指定是否删除行末的空格和制表符以节省输出空间。默认为true
。例如:
const myObj = {
name: 'John',
age: 30,
hobbies: ['reading', 'writing', 'coding'],
address: {
street: '123 Main St',
city: 'Anytown',
state: 'CA'
},
inspect() {
return `Name: ${this.name}, Age: ${this.age}`;
},
[Symbol('foo')]: 'bar'
};
console.dir(myObj, {showHidden: true, colors: true});
输出结果如下:
{ name: 'John',
age: 30,
hobbies: [ 'reading', 'writing', 'coding' ],
address:
{ street: '123 Main St',
city: 'Anytown',
state: 'CA' },
[Symbol(foo)]: 'bar' }
可以看到,由于设置了showHidden
为true
,隐藏属性[Symbol(foo)]
也被输出了。
console.dir()
方法是一个强大的调试工具,可以方便地输出对象的所有属性和方法。通过选项参数,可以控制输出的细节,从而更好地满足调试需求。