I'm curious if anyone would, or does use something along the lines of extend2 for inheritance. Here's a quick demo of how it works:
Code JavaScript:
var extend2 = function(Child, Parent) {
	var p = Parent.prototype, c = Child.prototype, i;
 
	for (i in p) {
		c[i] = p[i];
	}
 
	c.uber = p;
};
 
// A Constructor
var A = function() {
	this.name = "A";
	this.holler = "A";
	this.foo.constr = this;
};
// Augment
A.prototype.foo = {
	init: function() {
		// Empty for now
	},
	ok: "A ok"
};
 
// B Constructor
var B = function() {
	this.name = "B";
	this.holler = "B";
	this.foo.constr = this;
};
// Inheritance
extend2(B, A);
// Augment
B.prototype.foo = {
	init: function() {
		// Empty for now
	},
	ok: "B ok"
};
 
// C Constructor
var C = function() {
	this.name = "C";
	this.holler = "C";
	this.foo.constr = this;
};
// Inheritance
extend2(C, B);
// Augment
C.prototype.foo = {
	init: function() {
		var constr = this.constr;
 
		console.log(constr.uber.uber.foo.ok);
	},
	ok: "C ok"
};
 
// Invoke
var fooA = new A();
fooA.foo.init();
 
var fooB = new B();
fooB.foo.init();
 
var fooC = new C();
fooC.foo.init();

If the mentioned approach is problematic, or another approach is more looked upon - let me know, thanks.