function A(){
this.a = 5;
this.name = 'zz';
}
const o = create(A)
function create() {
let obj = {}
let Con = [].shift.call(arguments)
obj.__proto__ = Con.prototype
let result = Con.apply(obj, arguments)
return result instanceof Object ? result : obj
}
o; // { a: 5, name: "zz" }