js 继承原型链相关

   function SuperType(){  
        this.property =true;  
    }  
    SuperType.prototype.getSuperValue = function(){  
        alert("I AM SuperType")
        return this.property;  
    }  

    function SubType(){  
         alert("I AM SubType")
        this.subproperty =false;  
    }  
    SubType.prototype = new SuperType();     //实现了继承SuperType  
    SubType.prototype.getSubValue = function(){  
        return this.subproperty;  
    }  

    
    var instance = new SubType();  //先执行 alert("I AM SubType")
    alert(instance.getSuperValue()); //再执行 alert("I AM SuperType") 最后执行alert("true")

以上代码定义了两个类型:SuperType和SubType.每个类型分别有一个属性和一个方法。它们的区别主要是SubType继承了SuperType,而继承是通过创建SuperType的实例,并将该实例赋值给SubType.prototype实现的。实现的本质是重写SubType的原型对象,替换为SuperType的实例。这个新的原型对象不仅具有SuperType实例的所有方法和属性,而且还有一个指针指向SuperType的prototype属性。即SubType.prototype的原型指向SuperType的prototype属性。

 

posted @ 2017-04-24 17:02  阿波  阅读(104)  评论(0编辑  收藏  举报