基于构造函数创建自定义类(constructor)
1.在普通函数执行的基础上“new xxx()”,这样就不是普通函数执行了,而是构造函数执行,接受的返回结果为当前类的一个实例。
2.执行过程:
- (1).像普通函数执行一样,形成一个私有的作用域(栈内存),完成形参赋值和变量提升
- (2)【构造函数独有】在JS代码自上而下执行之前,首先在当前形成的私有栈中创建一个对象(创建一个堆内存:暂时不存储任何的东西),并且让函数中的执行主体(this)指向这个新的堆内存
- (3)代码自上而下执行
- (4)【构造函数独有】代码执行完毕,把之前创建的堆内存地址返回(浏览器默认返回)
3.构造函数执行,不写return,默认返回创建的实例,但是如果我们自己写了return`?
1.return的是一个基本值,返回的结果依然是类的实例,没有收到影响
2.如果返回的是一个引用值,则会把默认返回的实例覆盖,此时接受到的结果就不再是当前类的实例