楼主打算怎么继承呢?JavaScript是原型式继承,可不跟其他语言一个样。说白了,你这根本不算继承

解决方案 »

  1.   

    在Triangle.prototype=new Polygon();执行之前对象已经被实例化,并且与原始prototype联系在一起了,用极晚绑定可以使对原形对象的修改正确的反映出来,但替换的prototype对象不会对该对象产生任何改变。
    function Polygon(iSides){
                    this.sides=iSides;
                    if(typeof Polygon._initialized=="undefined"){
                        Polygon.prototype.getArea=function(){
                            return 0;
                        }
                        Polygon._initialized=true;
                    }
                }
                function Triangle(iBase,iHeight){
                    Polygon.call(this,3);
                    this.base=iBase;
                    this.height=iHeight;
                    if(typeof Triangle.initialized=="undefined"){
                        
                        Triangle.prototype.getArea=function(){
                            return 0.5*this.base*this.height;
                        }
                        Triangle._initialized=true;
                        
                    }
                    
                }
                Triangle.prototype=new Polygon();//该放在这
                var tri1 = new Triangle(6,4);
                var tri2 = new Triangle(6,4);
                alert(tri1 instanceof Polygon);
                alert(tri2 instanceof Polygon);
      

  2.   

    javascript继承方式多种多样 他这算继承 只是一句代码写错了地方
      

  3.   

    这句话是书上的 没看懂 能解释一下这句话吗 Triangle.prototype=new Polygon()实质是什么 为什么换个位置就可以了,哪个对象执行前就被实例化了 
      

  4.   

    Triangle.prototype=new Polygon()实质是什么 为什么换个位置就可以了,哪个对象执行前就被实例化了
    Polygon.call(this,3);这个时候Triangle就被实例化了 实例化的时候它的prototype就已经被改变了
    你在下边又写了一次Triangle.prototype=new Polygon()
    已经改变不了Triangle的prototype了
      

  5.   

    http://blog.csdn.net/damoqiongqiu/archive/2009/04/21/4097212.aspx
      

  6.   

    http://blog.csdn.net/damoqiongqiu/archive/2009/04/19/4091859.aspx