什么属性警告我?

时间:2010-01-17 23:44:12

标签: javascript object alert

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

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

那一点,说[对象等等]的部分。这是什么属性?我最近开始制作自己的对象来封装我正在处理的网站的有用部分......但是当我传递自己的对象进行提醒时,它给了我一般的消息[对象对象],如果我有的话,这对我没有帮助做了一堆不同种类的对象。例如,我希望我的对象能够在[object My_Object]的行中向我返回更多内容。

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

谢谢!

Ž。

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:4)

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

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

答案 2 :(得分:2)

不是使用alert()进行调试,而应该查看Firebug和优秀的Web开发工具,以及更好的HTML检查,javascript调试和其他好东西。