function Person(name){ this.name = name; } Person.prototype.getname = function () { return this.name; } var ObjectFactory = function () { var obj = new Object(), Constructor = [].shift.call(arguments); obj.__proto__ = Constructor.prototype; var ret = Constructor.apply(obj, arguments); return typeof ret === 'object' ? ret : obj; }; var a = ObjectFactory(Person, 'seven');