/**
 *
 * OBJECT PATTERN
 *
 */
var Modul = Modul || {};
Modul.BasicClass = function (_arg) {
    this._key = _arg;
};
Modul.BasicClass.prototype = {
    Create: function (_name) {
        var _key = this._key;
        this.ChildClass = function () {
            this.superclass.call(this, _key);
            this._val = _name;
        };
        this.ChildClass.prototype = new Modul.BasicClass();
        this.ChildClass.prototype.superclass = Modul.BasicClass;
        this.ChildClass.prototype.constructor = this.ChildClass;
        delete this.ChildClass.prototype.Create;
        return new this.ChildClass();
    }
    //Test method
    , returnArg: function () {
        return this._key + ': ' + this._val;
    }
    //Other inheritable method
    , Method1: function () {}
    , Method2: function () {}
    , Method3: function () {}
    , toString: function () {}
    , valueOf: function () {}
};
var baseUserClass = new Modul.BasicClass('Name'),
    subUserClsas1 = baseUserClass.Create('Boodoolai'),
    subUserClsas2 = baseUserClass.Create('Kolobok');
/**
 * TEST PATTERN
 *
 * @return true
 * @return true
 */
console.log(subUserClsas1 instanceof Modul.BasicClass);
console.log(subUserClsas2 instanceof Modul.BasicClass);
/**
 * @return Name: Boodoolai
 * @return Name: Kolobok
 */
console.log(subUserClsas1.returnArg());
console.log(subUserClsas2.returnArg());
Этот патерн мало чем отличает от других, просто есть сомнения, что в назначении наследуемости есть, что то лишнее. А именно, не хотелось бы терять память на имеющейся цикличности. 
 
Сразу замечу, что под имеющуюся задачу, клонирование объектов с прототипами (наподобие .extend) - не вариант.