function Cat (name){
this.name = name;
}
Cat.create = function(args){
var _ = function(){};
_.prototype = this.prototype;
var inst = new _;
this.apply(inst,args);
return inst;
};
var cat = Cat.create(['Ашот']);
alert(cat.name);
а еще это можно использовать вот так вот
function Cat(name, age) {
if (this instanceof Cat === false) { // опа на
return Cat.create(arguments);
}
this.name = name;
this.age = age;
}
Function.prototype.create = function(args){
var _ = function(){};
_.prototype = this.prototype;
var inst = new _;
this.apply(inst,args);
return inst;
};
var cat = new Cat('Ашот',11);
var cat2 = Cat('Ашот',11); // и можно вызывать без new