Як показати повний об’єкт у консолі Chrome?


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

functor.prop=1;

console.log(functor);

це показує лише функціональну частину функтора, не може відображати властивості функтора в консолі.

Відповіді:


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));

ця відповідь чудова, але я думаю, що не працює з наведеним вище зразком, спробував на новій вкладці і повертається невизначеним
aitorllj93

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]); }
Гео

це не буде виводити властивості та методи, які не перелічуються
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

Я зробив функцію відповіді Тризуб Д'Гао.

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

Як ним користуватися

print(obj);

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.