new运算符

    1、在构造函数前加上new,会创建出一个空对象

    2、将新对象的proto指向构造函数的prototype

    3、将构造函数中的this指向新对象,执行构造函数中的语句去修饰这个新对象

    4、如果构造函数return一个引用类型,那么返回该引用类型,如果return一个基本数据类型或者没有return,那么返回我们新创建的对象。

    1. function myNew(Fun, ...args) {
    2. const obj = {};
    3. obj.__proto__ = Fun.prototype;
    4. let result = Fun.apply(obj, args);
    5. return result instanceof Object ? result : obj;
    6. }