> А кто сможет подкинуть задачу на прототипы и наследование?
написать фабрику классов так, чтобы каждый класс можно было использовать и как фабрику, то есть следующие фрагменты должны делать одно и тоже:
var Obj = new Factory(protoObj)
var AnotherObj = Factory(protoObj) // Obj === AnotherObj
var obj = new Obj(1,2,3) // obj instanceof Obj
var obj = Obj(1,2,3) // obj instanceof Obj
параметры указываемые при создании объекта, допустим, должны быть переданы методу init нового объекта в полном объёме (их может не быть, а может быть аж более 9000), если он определён. если не определён, то бросить исключение, мол "не знаю что с параметрами делать"