说说new操作符具体干了什么?

69 阅读1分钟

创建一个空对象

  • 创建一个新的空对象,并将其 __proto__ 属性(或内部属性 [[Prototype]])链接到构造函数的 prototype 属性。这一步实现了新对象继承自构造函数的原型。

设置构造函数的作用域

  • 将构造函数的 this 绑定到新创建的对象。这样,构造函数内部的 this 就指向这个新对象。

执行构造函数

  • 调用构造函数,并将参数传递给它,使其可以初始化新对象的属性。

返回新对象

  • 如果构造函数显式返回一个对象,则返回该对象;否则,返回步骤 1 创建的新对象