js中用new关键字创建一个对象时做了那些操作呢?学了原型链和原型以及对象原型相关知识后有了更深的理解! 分享如下:
简单点说:
- 创建一个新对象。
- 构造函数的this指向这个新对象。
- 执行构造函数内部的代码。
- 返回对象。
详细点说:
- 在内存中创建一个新对象。
- 这个对象的[[prototype]]特性被赋值为构造函数的prototype。
- 构造函数内部的this被赋值为这个对象(即this指向新对象)。
- 执行构造函数内部的代码(给这个对象添加属性)。
- 如果构造函数返回非空对象,则返回这个对象;否则,返回刚创建的新对象。