1. 程式人生 > >原型式繼承與寄生式繼承

原型式繼承與寄生式繼承

原型式繼承

原型式繼承是一種簡單的繼承方法。這個方法接受一個物件引數,而物件引數將會作為函式內返回的物件的原型。由此實現繼承。因此,這個原型將被其所有例項共享。

function object (obj) {
function F () {}
F.prototype = obj;
retrun new F();
}

var o = {
name : 'cat',
fn : function () {
}
}

var obj1 = object(o);
var obj2 = object(o);

obj1.fn() // cat
obj2.fn() // cat

寄生式繼承應該算是原型式繼承的一種增強拓展。

function enhanceObject (o) {
var obj = object(o);

obj.say = function () {
}

retrun obj;
}

var obj = enhanceObject(o);
obj.say() // 2

在enhanceObject函式內部,呼叫了object方法來返回一個新物件,然後又對這個物件增添了屬於它自己的方法。最後把這個物件返回出去。