Javascript 获取console.log()以显示自定义对象描述

Javascript 获取console.log()以显示自定义对象描述,javascript,Javascript,我有一个定制的JS对象,用来表示网格。在本例中,它如下所示: function Grid(c, r) { var layout = []; var contentPointer = 0; this.getCell = function(c, r) { //Return selected cell } this.getRow = function(r) { //Return selected row

我有一个定制的JS对象,用来表示网格。在本例中,它如下所示:

function Grid(c, r)
{   
    var layout = [];
    var contentPointer = 0;

    this.getCell = function(c, r)
    {
        //Return selected cell
    }

    this.getRow = function(r)
    {
        //Return selected row
    }

    this.getCol = function(c)
    {
                //Return selected column
    }

    for(var row = 0; row < r; row++)
    {
        layout[row] = [];
        for(var col = 0; col < c; col++)
            layout[row][col] = 0;
    }
}
功能网格(c,r)
{   
var布局=[];
var contentPointer=0;
this.getCell=函数(c,r)
{
//返回所选单元格
}
this.getRow=函数(r)
{
//返回所选行
}
this.getCol=函数(c)
{
//返回所选列
}
对于(变量行=0;行
我使用
var aGrid=newgrid(10,10)在这里和那里创建了多个实例
我希望能够做的是调用
console.log(aGrid)
并能够自定义控制台显示的内容,例如,我可以获得我添加的所有单元格值的字符串或类似内容

在am中,我们将使用
trace(aGrid)来使用Actionscript
代替
console.log(aGrid)toString()
方法,这将更新控制台输出中显示的内容

我已经看到我可以在JS中向我的网格对象添加
toString()
方法,但是控制台似乎没有使用它,除非我专门调用
console.log(agid.toString())。虽然这很好,但我只是想知道是否有办法解决这个问题

控制台是否真的基于被记录对象的某个可重写方法生成其输出,或者它是否执行了一些疯狂的内部魔法来获取值

使用
警报(aGrid)
似乎使用
toString()
并获取自定义值,但我宁愿剥下自己的皮,也不愿使用
alert()调试大型项目:)

欢迎任何评论。多谢各位


PS-我不知道不同的浏览器是否对
console.log()
有不同的处理方式,但我使用的是Chrome v33。

console.log
接受对象作为参数,如果您将它放在那里,您将能够在Chrome控制台中检查它

因此,删除
.toString()
,它就会起作用

console.log("aGird", aGrid );
我已经看到我可以在JS中将toString()方法添加到我的网格对象中,但是控制台似乎不使用它,除非我专门调用console.log(agid.toString());。虽然这很好,但我只是想知道是否有办法解决这个问题

不,这是没有办法的。控制台本身决定了如何显示传递的参数,Chrome控制台允许您动态检查对象,而不是试图以某种方式序列化它们。如果需要自定义输出,则需要向其传递一个字符串。

您可以使用它。console.table允许您指定要查看的属性。比如说

console.table(aGrid);                            // will show all properties
console.table(aGrid, 'firstName');               // will show only firstName property
console.table(aGrid, ['firstName', 'lastName']); // will show firstName and lastName properties