1. function A(){
    2. this.a = 5;
    3. this.name = 'zz';
    4. }
    5. const o = create(A)
    6. function create() {
    7. let obj = {}
    8. let Con = [].shift.call(arguments)
    9. obj.__proto__ = Con.prototype
    10. let result = Con.apply(obj, arguments)
    11. return result instanceof Object ? result : obj
    12. }
    13. o; // { a: 5, name: "zz" }