3

在编写 Javascript 时,我使用 window.alert() 进行调试。通常我将变量传递给警报,它会弹出一个包含该变量值的字符串。但是,如果我通过 alert 一个对象,它会告诉我对象的类型。例如:

var form = document.getElementById("my_form");
alert(form); // returns [object HTMLFormElement]

那一点,说[object blah blah]的部分。那是什么属性?我最近开始制作自己的对象来封装我正在处理的网站的有用部分......但是当我传递我自己的对象以提醒它时,它会给我通用消息 [object Object],如果我有这不是很有帮助做了一堆不同种类的物体。例如,我希望我的对象返回给我更多类似于 [object My_Object] 的内容。

我可以在函数 My_Object() 中设置一个属性来告诉 alert 我想让它告诉我什么吗?

谢谢!

z。

4

3 回答 3

6

您必须覆盖该toString()方法。否则,Object.prototype.toString将使用,它返回"[object Foo]",其中Foo是对象的内部(即不可访问)类属性的值。

于 2010-01-17T23:47:47.870 回答
4

尝试重新定义类原型的“toString()”:它用于创建对象的字符串类型。默认它是[object <type>],但这不是你想要的,是吗。

虽然,“您可以为您创建的自定义对象覆盖此方法。如果您不覆盖自定义对象中的 toString,则 toString 返回[object type],其中 type 是对象类型或创建对象的构造函数的名称。”,http ://www.synchro.net/docs/js/ref/object.html#1193350

于 2010-01-17T23:50:03.240 回答
2

与其使用 alert() 进行调试,不如查看Firebug和出色的 Web 开发工具,具有更好的 HTML 检查、javascript 调试和其他好东西。

于 2010-01-20T05:41:10.780 回答