原型链是JavaScript中继承的主要方法。
其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。让原型对象等于另外一个类型的实例,此时,原型对象将包含一个指向另外一个原型的指针,相应的另外一个原型也包含一个指向另外一个构造函数的指针。如果领一个原型又是另外一个类型的实例,那么上述关系依然成立,如此层层递进,就构成了实例与原型的链条。这就是所谓的原型链的概念。
实现原型链有一种基本模式,代码如下:
function
SuperType(){
this
.property=
true
;
}
SuperType.prototype.getSuperValue=
function
(){
return
this
.property;
}
function
SubType(){
this
.subproperty=
false
;
}
//继承了SuperType
SubType.prototype=
new
SuperType
();
SubType.prototype.getSubValue=
function
(){
return
this
.subproperty;
}
var
instance=
new
Son();
alert(instance.getSuperValue());
//true