读书人

很奇怪小弟我自定义的类实例化后a

发布时间: 2012-07-26 12:01:08 作者: rapoo

很奇怪,我自定义的类,实例化后alert,都弹出[object,Object],为什么Array弹出的是字符串,请问它里面怎么写的?
比如
function abc(){


}
var obj=new abc(1,2,4);
alert(obj),现在弹出[object,Object], 我怎么让obj编程一个数字或字符串,比如说1+2+4的结果7?


[解决办法]

JScript code
//类function abc(a, b, c) {    this.result = a + b + c;}var obj = new abc(1,2,4);alert(obj.result);//函数function abcd(a, b, c, d) { return a + b + c + d; }alert(abcd(1,2,3,4));
[解决办法]
你需要重写prototype.toString方法

下面代码实现了你的需要
function abc(){
this.r = 0;
for(i=0;i<arguments.length;i++)
this.r+=arguments[i]
}
abc.prototype.toString=function(){return this.r;}

var obj=new abc(1,2,4);
alert(obj)

var obj2=new abc(1,2,4,6,8,9,80);
alert(obj2)
[解决办法]
alert 会调用参数对象的toString()方法。
重写下toString 就O了。

读书人网 >JavaScript

热点推荐