一共4步
1.创建了一个新对象
2.把空对象和构造函数通过原型链进行连接
3.将构造函数的作用域赋给新对象(因此 this 指向这个新对象)。
4.如果构造函数返回了一个对象,则返回该对象;否则返回新创建的对象。
javascript
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