-
构造函数执行也和普通函数执行一样,
- 产生私有上下文AO
- 初始化作用域链
- 初始化this
- 初始化arguments
- 形参赋值
- 变量提升
- 代码执行
- 返回「是否释放,看是否有闭包,即是否有东西被外界占用」
-
不同点
-
默认创建一个空的实例对象
- fn被称之为类/构造函数
- 创建的这个对象称为实例对象
-
初始化this的时候,this指向的是创建的实例对象
- 代码执行中出现this.xxx = xxx是给创建的实例设置私有属性
- let xx = xx是给私有上下文设置私有变量,和创建的实例对象无关,所以看图上面的额total和say,是给实例设置的,sum是给上下文设置的
-
返回值如果是原始值类型或者没有返回值,则会返回当前的实例对象
-
如果有return对象类型的值,就以自己返回的为主
-