里面的function() 哪里来的

解决方案 »

  1.   

    升星后的第一回帖<SCRIPT LANGUAGE="JavaScript">
    <!--
    function ClassAA() 


    ClassAA.prototype.color ="red"; 
    ClassAA.prototype.sayColor = function() 

    alert(this.color); 
    } function ClassBB() 

    } ClassBB.prototype = new ClassAA(); ClassBB.prototype.name= ""; 
    ClassBB.prototype.sayName = function() 

    alert(this.name); 

    var naCLSB = new ClassBB(); naCLSB.color = "sky blue"; 
    naCLSB.name = "cute susan"; 
    naCLSB.sayColor(); 
    naCLSB.sayName(); 
    //-->
    </SCRIPT>
      

  2.   

    修改后的代码如下:
    function ClassAA() 

    ClassAA.prototype.color ="red"; 
    ClassAA.prototype.sayColor = function() 

    alert(this.color); 

    } function ClassBB() {}ClassBB.prototype = new ClassAA(); ClassBB.prototype.name= ""; 
    ClassBB.prototype.sayName = function() 

    alert(this.name); 

    var naCLSB = new ClassBB(); naCLSB.color = "sky blue"; 
    naCLSB.name = "cute susan"; 
    naCLSB.sayColor(); 
    naCLSB.sayName(); 问题出在function ClassBB() {},不应该把ClassBB.prototype = new ClassAA(); 放到function ClassBB() {}里面,这种类继承方法叫【原型链】,prototype对象的任何属性和方法都会被传递给对应类的所有实例,原型链就是用这种方式来显现继承.
      

  3.   

    恭喜songpengasp升
    function ClassAA()
    {
    this.color = "red";
    this.sayColor = function()

    alert(this.color); 

    }function ClassBB() 

    this.name = ""; 
    this.sayName = function() 

    alert(this.name); 


    ClassBB.prototype = new ClassAA(); var naCLSB = new ClassBB(); 
    naCLSB.color = "sky blue"; 
    naCLSB.name = "cute susan"; 
    naCLSB.sayColor(); 
    naCLSB.sayName(); 
    这样也可以。