提醒对象

时间:2010-06-07 15:12:48

标签: javascript javascript-events

我正在设置像这样的对象

n.name = n.name.join(String.fromCharCode(255));
n.description = n.description.join(String.fromCharCode(255));

我希望能alert(n);,但它告诉我[Object]

有没有办法提醒整个对象?

感谢

6 个答案:

答案 0 :(得分:2)

Javascript支持向对象添加toString()函数。当您提醒对象时,将调用此方法。例如:

n.toString = function(){
    return this.name + '\n' + this.description;
}

然后警告(n);将显示您的函数指定的任何内容。

答案 1 :(得分:2)

我喜欢php中的var_dump,所以我经常使用这样的函数来转储变量

function var_dump(object, returnString)
{
  var returning = '';
  for(var element in object)
  {
    var elem = object[element];
    if(typeof elem == 'object')
    {
      elem = var_dump(object[element], true);
    }
    returning += element + ': ' + elem + '\n';
  }
  if(returning == '')
  {
    returning = 'Empty object';
  }
  if(returnString === true)
  {
    return returning;
  }
  alert(returning);
}

答案 2 :(得分:2)

今天我问的问题与Autolycus一样。我正在使用jqGrid,我想看看它实际创建的对象是什么。我没有创建对象,我想看看它的样子。我知道这可能是老派,但我仍然在javascript中使用警报进行一些调试(虽然我同意FireFox和Firebug是大多数事情的方法)。

我找到了我在这里寻找的答案:http://javascript.internet.com/debug-guide.html,这是令人难以置信的陈旧。

但是我调整了它以给我我需要的东西,因为我认为它以一种全新的方式回答了Autolycus的问题而且我认为其他人可能会像我一样在这里寻找这一天,这就是:

obj = n;
var temp = "";
for (x in obj) {
    temp += x + ": " + obj[x] + "\n";
}
alert (temp);

如果回答一个旧问题违反了某种规则,我会提前道歉。

最好的, 余烬

答案 3 :(得分:1)

有几种选择:

1. Use http://www.gscottolson.com/blackbirdjs/
2. Use console.log() that comes with Firebug, but requires Firefox (even if you only target only IEs, it's still wise to use Firefox and Firebug as aprt of testing of your web app development)

答案 4 :(得分:1)

通过提醒整个对象,这取决于你的意思。

你不能真正只是将每个对象输出为一个字符串并让它有意义。要定义对象如何将自身显示为字符串,我们使用.toString();方法。

所以尝试提醒(n.toString());看看那会不会给你你想要的东西。如果对象是您自己的对象,则定义toString();并让它返回您要输出的参数和字段的字符串。

答案 5 :(得分:0)

像...一样的东西。

alert(n.name); 

......我认为是你想要的。

如果您正在尝试调试,则更适合使用FireFox / Firebug而不是插入一连串警报();