一共4步
1.创建了一个新对象
2.把空对象和构造函数通过原型链进行连接
3.将构造函数的作用域赋给新对象(因此 this 指向这个新对象)。
4.如果构造函数返回了一个对象,则返回该对象;否则返回新创建的对象。
function Person(){}const p=new Person()// 1.创建了一个新对象const obj={}//2.把空对象和构造函数通过原型链进行连接obj.__proto__===Person.prototype//3.将构造函数的作用域赋给新对象(因此 this 指向这个新对象)。Person.call(obj)//4.如果构造函数返回了一个对象,则返回该对象;否则返回新创建的对象。return typeof result === 'object' ? result : obj