通常我们通过构造函数创建一个实例时,使用new操作符即可
但如何自己实现一个new方法呢
搞清楚原理,其实很easy
对于实例来讲,我们得到了构造函数中的
实例参数,因此一个new方法需要接收的是构造函数,和需要传入的实参
既然要生成一个实例,当然先创建实例
第一步
第二步,让新对象指向的原型对象等于构造函数指向的原型对象
第三步,让新对象的this指向构造函数
这里我使用的是call改变this指向,call方法传入的参数是单个的元素,因此要展开数组,如果使用apply则直接传入args即可
第四步,根据result的类型,返回不同结果
返回的结果注定是引用数据类型
实现了new的作用