6

如果我打开控制台并输入...

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"

这对我来说并不重要,但我更喜欢第一个代码 return "-->5"。有没有办法做到这一点,还是故意不使用控制台toString

4

1 回答 1

4

它旨在用于调试,因此告诉您有关对象的所有内容可能很有用。

毕竟,如果你想要调用的结果,toString()你会用i.toString()or来询问它"" + i,但如果这是默认行为,那么就没有办法获得你得到的更深层次的表示。

于 2012-09-03T21:16:07.223 回答