我在Chrome中打开了Javascript调试器(Ctrl + Shift + L)并开始使用它在我的代码中设置断点。
与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 :(得分:6)
Chrome具有ECMA风格的原生JSON,因此您可以使用
JSON.stringify (opts);
{"prop1":"<some><string/></some>","prop2":2,"prop3":[1,2,3]}
答案 1 :(得分:0)
尝试在Inspector(Ctrl+Shift+J
)底部的JavaScript控制台中使用命令行。它有一种更像Firebug的感觉。
答案 2 :(得分: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]
答案 3 :(得分: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...