自從有了面向對象(OOP)編程思想以後。繼承就成了復用程序代碼的壹種良好的組織方式。
傳統的面向對象采用“類繼承”的方式,例如Java、C#、C++、PHP等。而Javascript采用了另外壹種更為簡便的繼承方式,“原型繼承”的方式。
原型是指壹個對象模板。當要創建某壹類型的對象時,我們創建壹個較小的對象,並讓這個較小的對象指向這個原型對象。這樣,創建的對象占用的內存空間就比較小,因為它復用了原型對象中的屬性和方法。
例如:
function?Persion(){}var?proto?=?Person.prototype;
proto.foo?=?function(){alert('foo');};
var?p?=?new?Person();
var?p2?=?new?Person();
p.foo();
p2.foo();
//這裏我們看到。p對象和p1對象自動就擁有foo方法。因為他們***享了proto這個原型對象中的屬性和方法。