很奇怪,小弟我自定义的类,实例化后alert,都弹出[object,Object],为什么Array弹出的是字符串,请教它里面如何写的
很奇怪,我自定义的类,实例化后alert,都弹出[object,Object],为什么Array弹出的是字符串,请问它里面怎么写的?
比如
function abc(){
}
var obj=new abc(1,2,4);
alert(obj),现在弹出[object,Object], 我怎么让obj编程一个数字或字符串,比如说1+2+4的结果7?
------解决方案--------------------
比如
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了。