Общее и одноуровневое базовое решение JavaScript
Базовая функциональность выглядит следующим образом:
var s = "";
for(var p in obj)
{
s += p + " = " + obj[p] + "\n";
}
alert(s);
Проблема с графом объекта
Перечисляет все свойства объекта,Если этот конкретный объект имеет глубокие деревья объектов, вам лучше поместить это в функцию, а затем вызвать ее для подобъекта.перечислить внутренний подобъект, используя ту же технику.Массивы - это похожая проблема.
Но я полагаю, что вы сможете предоставить такую функциональность из этого исходного кода.
Решение консоли браузера
Если у вас естьКонсоль разработки откроется в вашем браузере (в Firefox это будет Firebug), тогда вы можете легко вызвать это так:
console.log(obj);
Но есть проблема с IE, потому что когда дело доходит до сложного объекта, просто отображается {...}
что не очень полезно.Так что этот подход можно использовать только в Chrome и Firefox + Firebug.
Плагин jQuery для любого браузера
Это небольшой и простой плагин, который я придумал для перечисления произвольного объекта иотображать его содержимое в консоли браузера:
$.extend({
inspect: function(obj,n){
n = n || "this";
if ($.isArray(obj)) {
for (var x = 0; x < obj.length; x++) {
$.inspect(obj[x], n + "[" + x + "]");
}
return;
}
if ($.isPlainObject(obj)) {
for (var p in obj){
$.inspect(obj[p], n + "." + p);
}
return;
}
console.log(n + " = " + obj.toString());
}
});
Этот код работает с любым браузером (он мне действительно нужен для IE, из-за ранее упомянутой проблемы с {...}
display.
Он анализируетграф объектов в консоль при условии, что консоль вашего браузера открыта. В IE и Chrome это встроенная консоль разработки, а в Firefox - консоль Firebug.
Вы можете использовать ее как:
$.inspect(yourObject);
или
$.inspect(yourObject, "person");
Второй необязательный параметр используется для присвоения имени вашему объекту при его отображении. Если вы не укажете имя, оно будет установлено как "this"
. Ваш объект будет отображаться как:
this.name = "John"
this.lastname = "Doe"