javascirpt--原型链与继承--06

阅读本篇先理解一句话,每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,实例都包含一个指向原型对象的内部指针,这句话不理解的话请翻阅本系列前面几个篇文章。

原型链的基本模式

让一个原型对象等于另一个类型的实例时,就产生了原型链

function SuperType(){
	this.property = true;
}
SuperType.prototype.getSuperValue = function(){
	return this.property;
};

function SubType(){
	this.subproperty = false;
}

//subType的原型赋值为 SuperType的实例
SubType.prototype = new SuperType();
SubType.prototype.getSubValue = function (){
	return this.subproperty;
};

var instance = new SubType();
alert(instance.getSuperValue()); //true

SubType的原型赋值SuperType的实例后,SubType的实例便可以调用使用SuperType中的属性和函数,js中的继承就是这样实现的
如下图,instance指向SubType的原型,subType的原型又指向superType的原型
javascirpt--原型链与继承--06_第1张图片
所有引用类型都继承了Object,默认原型都包含一个内部指针,指向Object.prototype
javascirpt--原型链与继承--06_第2张图片

你可能感兴趣的:(JavaScript高级编程)