美文网首页
模拟实现js中new的作用

模拟实现js中new的作用

作者: TerdShow | 来源:发表于2019-08-06 14:42 被阅读0次
    function create() {
      let obj = new Object(); // 1.创建一个空对象
      let Constructor = [].shift.call(arguments); 
      obj.__proto__ = Constructor.prototype; // 2.将空对象的原型对象指向构造函数的原型
      let result = Constructor.apply(obj, arguments); // 3.将构造函数的this指向该对象,执行构造函数,给对象添加属性和方法
      return typeof result === 'object' ? result : obj; // 4.返回这个对象
    }
    
    function Man(name,age){
      this.name = name;
      this.age = age;
    }
    
    let boy = create(Man, 'john', 18);
    console.log(boy);
    

    相关文章

      网友评论

          本文标题:模拟实现js中new的作用

          本文链接:https://www.haomeiwen.com/subject/ayoidctx.html