天天看点

js中new操作符做了什么

简单记录下new一个js对象时,做了什么事情。

1、创建一个空对象=》{}

2、将1中创建的空对象的__proto__属性指向构造函数的prototype属性。

3、将构造函数的this指定为1中创建的空对象。

4、执行构造函数(为this绑定属性、复制等操作)。

5.1、如果构造函数有返回值,且返回类型为引用类型,则将构造函数的返回值作为new的结果返回。

5.2、如果构造函数有返回值,且返回类型为基础数据类型,如int,则无论构造函数返回什么都无效,都将1中创建对象作为构造函数返回值返回。

5.3、如果构造函数没有返回值,则将1中创建对象作为构造函数返回值返回。

继续阅读