基本思想:利用原型让一个引用类型去继承另一个引用类型的属性和方法。
构造函数、原型和实例的关系:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。那么,假如我们让原型对象等于等一个类型的实例,此时的原型对象将包含一个指向另一个原型的指针,相应的,另一个原型也包含着指向另一个构造函数的指针。假如另一个原型又是另一个类型的实例,那么上述关系依然成立,如此层层递进,就构成了实例与原型的链条。这就是所谓原型链的基本概念。
例:
function A() { this.property=true; } A.prototype.getAValue=function () { return this.property; }; function B() { } B.prototype=new A(); //继承了A(); var result=new B(); alert(B.getAValue()); //true
定义两个函数A(),B(),让B的原型对象去继承A的实例(B.prototype=newA();),此时,B的原型对象将会包含指向A原型的指针;