在OO语言中,几乎都有继承这一说法,但是在js中好像这一说法并不是太明确,但是在js中可以实现继承,使用的原理就是原型链继承,如果不明白原型链的读者请看前面我写的几篇文章,在返回这篇文章中。
在js中实现继承是通过原型链继承的,但是如何能够继承一个特定类型的所有的属性和方法呢?只能是继承这个特定类型的实例,因为只有在实例中才能包含这个特定类型的所有属性和方法,当然也包含原型链上的方法,因为实例有一个内置对象是指向原型对象的,可以通过原型链搜索的方式进行搜索使用相应的属性或者方法。
var SuperType=function(){ this.property=true; } SuperType.prototype.getSuperTypeProperty=function(){ return this.property; } var SubType=function(){ this.property1=false; } SubType.prototype=new SuperType(); SubType.prototype.getSubTypeProperty=function(){ return this.property1; } var instance=new SubType(); console.log(instance.getSubTypeProperty());//false console.log(instance.getSuperTypeProperty());//true上述的简单代码实现了继承的写法,就是使用原型链继承的方式.
还有一默认的Object方式,是每一个原型链的顶端都会继承的