alert(arrStr.indexOf("张三"));arrStr.indexOf("张三")返回一个数字类型~
alert()里面如果放进去一个非字符串类型,就会调用一个类型的toString()方法得到一个字符串~比如说:
function myclass(strName,strSex){
this.name=strName;
this.sex=strSex;
                  this.toString=function(){
                       return "我叫"+this.name+",我的性别是"+this.sex;
                   }
}
var man=new myclass("张三","男");
alert(man)
至于你问的数组为什么可以放不同的类型,那是因为他们其实都是同一个基类~~
而且js是解释性语言,实现起来比较简单~~

解决方案 »

  1.   

    好象懂一些了,但我还想问楼上的高手一个问题,如何将自定义的类,添加其他转化函数比如toInt(),toFloat()...使其能想array对象一样可以自动转化,能实现吗?
      

  2.   

    你真的懂了吗?我说的toString方法跟array没什么关系吧~~~
    array其实本身是一个function类型~~~所谓数据放进去取出来值和类型都不会变~~~
    因为数组没有规定你“放”进去什么类型~~~
    而且我上面讨论的数组和toString方法是两个不同的问题~~~
      

  3.   

    aaa.prototype.toInt=function(){
       return parseInt(this,10)
    }
      

  4.   

    可能是我没有表达清楚,我想知道的是是否可以为自定义类添加一些成员函数如toint().tofloat()等,使其他函数在调用此类的对象时,能自动调用此类的相应成员函数,就象array等类一样可以自适应,如自定义类的一个实例与一个整数进行相加时能自动调用toint()函数.不知道能不能实现
      

  5.   

    明白你想要什么~~~
    function MyClass(name,age){
        this.name=name;
        this.age=age;
    }
    MyClass.prototype.toInt=function(){
       return parseInt(this.age)
    }
    var num=0;
    var myclass=new MyClass("小明",18);
    var sum=num+myclass;//你认为这里系统会自动调用返回age吗?不会的~哪有那么强~~