1. function myNew(fn, ...args) {
    2. let obj = Object.create(fn.prototype);
    3. let res = fn.call(obj, ...args);
    4. if (res && (typeof res === "object" || typeof res === "function")) {
    5. return res;
    6. }
    7. return obj;
    8. }
    9. 用法如下:
    10. // function Person(name, age) {
    11. // this.name = name;
    12. // this.age = age;
    13. // }
    14. // Person.prototype.say = function() {
    15. // console.log(this.age);
    16. // };
    17. // let p1 = myNew(Person, "lihua", 18);
    18. // console.log(p1.name);
    19. // console.log(p1);
    20. // p1.say();

    联系:原型链