2009-07-06 3 views
4

Я открыл Javascript Debugger (Ctrl + Shift + L) в Chrome и начал использовать его для установки контрольных точек в моем коде.В отладчике Chrome JS, как мне распечатать все свойства объекта?

Это отличный интерфейс по сравнению с Firebug (все это управляется командной строкой), поэтому мне интересно, как сделать простую вещь, например, распечатать все свойства объекта.

Если у меня есть объект вроде этого:

var opts = { 
    prop1: "<some><string/></some>", 
    prop2: 2, 
    prop3: [1,2,3] 
} 

Я могу установить контрольную точку и осмотреть объект, но я, кажется, только чтобы получить одно свойство назад, и я не уверен, появится свойство :

$ print opts 
#<an Object> 

Попытка получить все свойства:

$ print for(var p in opts) p; 
prop1 

Любые идеи? У него, очевидно, больше одного ...

ответ

0

Таким образом, я попытался с помощью команды "Dir", и это дает мне что-то, по крайней мере:

$dir opts 
3 properties 
prop1: string (#11#) 
prop2: string (#12#) 
prop3: string (#13#) 

Это также работает (немного лучше, потому что это дает мне некоторые значения), но обрезает конец строки, если это слишком долго:

$ print var s=[];for(var p in opts) { s.push(p + ":" + opts[p]); } s.join(","); 
prop1:<some><string/></some>,prop2:2,prop3:[object Object] 
0

Попробуйте использовать командную строку в консоли JavaScript внизу Инспектора (Ctrl+Shift+J). У этого есть намного больше похожего на Firebug чувство.

+0

Как установить контрольную точку с помощью инспектора? Моя проблема в том, что я хочу приостановить выполнение и проверить значение объекта. –

6

Chrome имеет ECMA-стиль родной JSON, так что вы можете использовать

JSON.stringify (opts); 
{"prop1":"<some><string/></some>","prop2":2,"prop3":[1,2,3]} 
+0

Это полезно знать, но похоже, что он не работает в отладчике. (ReferenceError: JSON не определен) –

0

Вы можете просто ввести имя объекта в командной строке отладчика Chrome и получить список для просмотра. В моем случае я хотел все свойства и методы, которые я мог бы вырезать/вставить во внешний документ. Это работает для меня:

for (a in opts) console.log(typeof (opts[a]) + ' :: ' + a); 

возвращается:

string :: id 
string :: name 
number :: selectMode 
string :: url 
boolean :: multi 
object :: selectedRows 
object :: selectedValues 
function :: Load 
function :: _LoadInternal 
function :: _CreatePostElements 
...etc... 
Смежные вопросы