手写new操作符

74 阅读1分钟

new的作用(操作符)

  1. 生成空对象
  2. 将构造函数内部的this指向 该空对象
  3. 返回该空对象

代码:

    function MyNew(fn,...args) {
      let obj = {}    // 创建一个对象
      fn.apply(obj,args)    // 修改fn函数的指向 指向obj对象且执行
      obj.__proto__ = fn.prototype  // 修改obj的原型指向函数的原型
      return obj
    }
        
        
    // 测试
    function Test(){
      this.a = 100
      this.b = 200
    }
    
    // 只能通过这种方式实现
    let test = MyNew(Test,"哈哈哈",50,15) 
    console.log(test);