js new 做了什么?

js new 做了 4 步。以 var a = new A(options) 为例:

  1. var a = {}
  2. a.__proto__ = A.prototype
  3. var o = A.prototype.constructor.call(a, options)
  4. if (o !== undefined) a = o

这过程,如果某一部报错,都会直接弹出错误,中断进程。