Упрощённо:
A = function(){};
A.prototype.A = function(){return 'A'};
B = function(){};
B.prototype = new A;
B.prototype.B = function(){return 'B'};
C = function(){};
C.prototype = new B;
C.prototype.C = function(){return 'C'};
a = new A;
b = new B;
c = new C;
alert(c.A() + c.B() + c.C())
A.prototype.A = function(){return 'A2'};
alert(c.A() + c.B() + c.C())
Но каждый толкует по своему, каждый пишет свои обёртки. Если погуглить на тему "javascript ооп" найдётся куча всяких вариантов.