js中new做了什么?

64 阅读1分钟

js中用new关键字创建一个对象时做了那些操作呢?学了原型链和原型以及对象原型相关知识后有了更深的理解! 分享如下:

简单点说:

  1. 创建一个新对象。
  2. 构造函数的this指向这个新对象。
  3. 执行构造函数内部的代码。
  4. 返回对象。

详细点说:

  1. 在内存中创建一个新对象。
  2. 这个对象的[[prototype]]特性被赋值为构造函数的prototype。
  3. 构造函数内部的this被赋值为这个对象(即this指向新对象)。
  4. 执行构造函数内部的代码(给这个对象添加属性)。
  5. 如果构造函数返回非空对象,则返回这个对象;否则,返回刚创建的新对象。