美文网首页
js实现new

js实现new

作者: 郭_小青 | 来源:发表于2021-03-02 15:10 被阅读0次

    new一个函数时发生了什么?

    1. 创建一个新的对象
    2. 将构造函数的原型复制给新对象(this就指向了新对象)
    3. 执行构造函数中代码
    4. 返回一个新对象

    js实现new

    function new(){
      var constr = Array.prototype.shift.call(arguments) //获取构造函数:   第一个参数
      var obj = Object.create(constr.prototype)  // 创建一个新的对象并使用构造函数原型
      var res = obj.apply(obj, arguments) // 执行构造函数中的代码
      return res instanceof object  ?  res  :  obj //基本类型返回对象,  对象类型返回构造函数执行的值
    }
    

    相关文章

      网友评论

          本文标题:js实现new

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