如何在Chrome控制台中显示完整对象?


155
var functor=function(){
    //test
}

functor.prop=1;

console.log(functor);

这仅显示函子的功能部分,而不能在控制台中显示函子的属性。

Answers:


245

使用console.dir()输出可浏览的对象,你可以点击,而不是通过.toString()的版本,就像这样:

console.dir(functor);

打印指定对象的JavaScript表示形式。如果要记录的对象是HTML元素,则将打印其DOM表示的属性[1]


[1] https://developers.google.com/web/tools/chrome-devtools/debug/console/console-reference#dir


1
请注意,仅varName在Chrome控制台中打印并按Enter即可获得与相同的效果console.dir(varName)
Vadzim

118

如果尝试以下操作,可能会得到更好的结果:

console.log(JSON.stringify(functor));

这个答案很好,但是我认为不适用于上面的示例,在新选项卡中尝试过并返回未定义
aitorllj93 2015年

1
在充分考虑到此答案的情况下,最终它返回一个表示对象的字符串,而不是控制台中的“可浏览”对象,就像问题就在这里一样。的确,如果通过JSON.parse运行此输出字符串,它将返回其对象格式,但是控制台仍将向其显示“ .toString()”,我们回到第一个平方。使用“ console.dir”的答案最适合当前的问题。
TheCuBeMan

21

如果尝试以下操作,则可能会得到更好的结果:

console.log(JSON.stringify(obj, null, 4));

通过格式化输出,此答案在@BastiBen上得到了改善。
Xeoncross

12
var gandalf = {
  "real name": "Gandalf",
  "age (est)": 11000,
  "race": "Maia",
  "haveRetirementPlan": true,
  "aliases": [
    "Greyhame",
    "Stormcrow",
    "Mithrandir",
    "Gandalf the Grey",
    "Gandalf the White"
  ]
};
//to console log object, we cannot use console.log("Object gandalf: " + gandalf);
console.log("Object gandalf: ");
//this will show object gandalf ONLY in Google Chrome NOT in IE
console.log(gandalf);
//this will show object gandalf IN ALL BROWSERS!
console.log(JSON.stringify(gandalf));
//this will show object gandalf IN ALL BROWSERS! with beautiful indent
console.log(JSON.stringify(gandalf, null, 4));

8

这对我来说非常合适:

for(a in array)console.log(array[a])

您可以提取在控制台中创建的任何数组,以用于查找/替换清理以及此提取数据的后验使用


3
更详细一点:for (i in arr) { console.log(i); console.log(arr[i]); }
2013年

它不会输出无法枚举的属性和方法
Barbu Barbu

0

我编写了一个函数,可以方便地将内容打印到控制台。

// function for debugging stuff
function print(...x) {
    console.log(JSON.stringify(x,null,4));
}

// how to call it
let obj = { a: 1, b: [2,3] };
print('hello',123,obj);

将在控制台中输出:

[
    "hello",
    123,
    {
        "a": 1,
        "b": [
            2,
            3
        ]
    }
]

0

使用现代浏览器,console.log(functor)可以完美运行(行为与相同console.dir)。


0

我做了Trident D'Gao答案的功能。

function print(obj) {
  console.log(JSON.stringify(obj, null, 4));
}

如何使用它

print(obj);

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.