当我编写Javascript时,我使用window.alert()进行调试。通常我将变量传递给警报,并弹出一个包含该变量值的字符串。但是,如果我通过警告对象,它会告诉我对象的类型。例如:
var form = document.getElementById("my_form");
alert(form); // returns [object HTMLFormElement]
那一点,说[对象等等]的部分。这是什么属性?我最近开始制作自己的对象来封装我正在处理的网站的有用部分......但是当我传递自己的对象进行提醒时,它给了我一般的消息[对象对象],如果我有的话,这对我没有帮助做了一堆不同种类的对象。例如,我希望我的对象能够在[object My_Object]的行中向我返回更多内容。
我可以在函数My_Object()中设置一个属性来告诉我我想要它告诉我什么吗?
谢谢!
Ž。
答案 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调试和其他好东西。