new的过程做了什么,实现一个new

/**
 * 实现一个new
 * by daidai
 */
function Dog (name){
    this.name = name;
    this.say = function () {
        console.log('我的name叫' + this.name)
    }
 }

 function _new (fn,...args) {
    const _obj = Object.create(Dog.prototype)
    const rel = fn.apply(_obj,args)
    return rel instanceof Object ? rel : _obj
 }

 let news = _new(Dog,'zhangsan')

由上代码可以看出  new的过程其实就是以构造器的prototype属性为原型,创建一个新的对象,并且把构造器的this指向新创建的这个对象

原文地址:https://www.cnblogs.com/wb336035888/p/12531616.html