美文网首页
js实现一个new

js实现一个new

作者: LUGY | 来源:发表于2019-10-16 18:09 被阅读0次

    new 关键字实现了如下过程
    1.创建一个空对象 obj ={}
    2.链接到原型 obj.proto = Constructor.prototype
    3.绑定this值 Constructor.call(obj)
    4.返回新对象

    function create(){
      //创建一个空对象
      let obj = new Object();
      //获取构造函数
      let Constructor = [].shift.call(arguments);
      //链接到原型
      obj.__proto__ = Constructor.prototype;
      //绑定this值
      let result = Constructor.apply(obj, arguments);//使用apply,将构造函数中的this指向新对象,这样新对象就可以访问构造函数中的属性和方法
      //返回新对象
      return typeof result === "object" ? result : obj;//如果返回值是一个对象就返回该对象,否则返回构造函数的一个实例对象
    }
    

    相关文章

      网友评论

          本文标题:js实现一个new

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