Как показать полный объект в консоли Chrome?

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

functor.prop=1;

console.log(functor);

это только показывает функциональную часть функтора, не может отображать свойства функтора в консоли.

lovespring
источник

Ответы:

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).
Вадим
118

Вы можете получить лучшие результаты, если попытаетесь:

console.log(JSON.stringify(functor));
BastiBen
источник
этот ответ
хорош,
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])

Вы можете извлечь любой массив, созданный в консоли, для поиска / замены, очистки и последующего использования этих извлеченных данных.

domSurgeon
источник
3
немного более подробно:for (i in arr) { console.log(i); console.log(arr[i]); }
Geo
он не будет выводить свойства и методы, которые не перечисляются
Барбу Барбу
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);
Йенс Торнелл
источник
-5

Для вывода obj:

console.log(obj, null, 4)
Кулаков Сергей
источник