1、创建一个空对象: 并且 this 变量引入该对象,同时还继承了函数的原型 2、设置原型链 空对象指向构造函数的原型对象 3、执行函数体 修改构造函数 this 指针指向空对象,并执行函数体 4、判断返回值 返回对象就用该对象,没有的话就创建一个对象