【JS】new一个对象发生了什么

  • Post author:
  • Post category:其他


1、创建一个新对象

var obj = {}

2、让构造函数classA的this指向obj,并执行构造函数中的代码(为新对象添加属性)

classA.call(obj)

3、设置新对象的_proto_属性指向构造函数classA的prototype对象

obj._proto_ = classA.prototype

4、返回该对象(对于一个构造函数即使它最后没有return,也会默认return this)

若构造函数中返回this或返回值是基本类型(number、string、boolean、null、undefined)的值,则返回新实例对象;若是引用类型,则返回的是这个引用类型的对象。



版权声明:本文为amyleeYMY原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。