如下代码:
 function SuperType(name){
 this.name=name;
 this.colors=["red","blue","green"];
 }
 SuperType.prototype.sayName=function(){
 alert(this.name);
 };
 function SubType(name,age){
 
 SuperType.call(this,name);//这里面的代码当我创建构造函数的时候,this不就是我new的对象吗,然后调用SuperType()函数,增加了个name属性
为什么我new SubType的时候,书上说,其实是调用SuperType的构造函数
 this.age=age;
 
 }
SubType.prototype=new SuperType();
 var ins=new SubType("tiantian",29);

解决方案 »

  1.   

    当你new SubType的时候,就是在执行function SubType(name,age)这个函数这函数里面第一句话就是
    SuperType.call(this,name);SuperType函数也被执行了嗯this就是你当前的这个对象ins
      

  2.   

     SuperType.call(this,name);这个this是一个作用域的问题 call了SuperType的构造函数时 SuperType中
    的this.name 中的this不是指代SuperType这个对象 而是指代当前SubType对象
    这也就是call方法的用法