Skip to content

类与构造函数

new 关键字

MDN:new 运算符允许开发人员创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。

在《JavaScript 模式》这本书中,new 的过程说的比较直白,当我们 new 一个构造器,主要有三步:

  • 创建一个空对象,将它的引用赋给 this,继承函数的原型。
  • 通过 this 将属性和方法添加至这个对象
  • 最后返回 this 指向的新对象,也就是实例(如果没有手动返回其他的对象)

同样符合原理的描述:

  • 以构造器的 prototype 属性为原型,创建新对象;
  • 将 this(也就是上一句中的新对象)和调用参数传给构造器,执行;
  • 如果构造器没有手动返回对象,则返回第一步创建的新对象,如果有,则舍弃掉第一步创建的新对象,返回手动 return 的对象。