如果我打开控制台并输入...
var f=function(a){
this.toString=function(){
return "-->"+a;
}
},i=new f(5);
i;
...它返回({toString:(function () {return "-->" + a;})})
。
但是如果我进入......
var f=function(a){
this.toString=function(){
return "-->"+a;
}
},i=new f(5);
alert(i);
...它提醒"-->5"
我非常重要,但我希望第一个代码返回"-->5"
。有没有办法做到这一点,或者控制台是否故意不使用toString
?
答案 0 :(得分:4)
它用于调试用途,所以告诉你所有关于对象的说法都可能有用。
毕竟,如果您想要调用toString()
的结果,那么您会使用i.toString()
或"" + i
来询问它,但如果这是默认行为,则不会是一种获得更深层次表达的方式。