原型链是JavaScript中实现继承的默认方式。
首先先定义三个构造函数:
function Shape(){ this.name = 'Shape'; this.toString = function(){ return this.name; } } function ShapeTwo(){ this.name = 'ShapeTwo'; } function ShapeThree(){ this.name = 'ShapeThree'; }
接下来,进行继承:
ShapeTwo.prototype = new Shape(); ShapeThree.prototype = new ShapeTwo();
我们是把对象创建在ShapeTwo的prototype属相中,也就是我们用构造器Shape()(通过new 操作)另建立了一个新的对象,然后用它覆盖ShapeTwo构造器的prototypeaa属性。
之后,我们要对ShapeTwo、ShapeThree的constructor属性进行相应的重置。
ShapeTwo.prototype.constructor = ShapeTwo;
ShapeThree.prototype.constructor = ShapeThree;
之后,进行测试:
var shapeThree = new ShapeThree(); var shapeTwo = new ShapeTwo();
这个测试说明,还是需要重置constructor的!
ShapeTwo