笔记-构造函数和普通函数

122 阅读1分钟

image.png

  • 构造函数执行也和普通函数执行一样,

    • 产生私有上下文AO
    • 初始化作用域链
    • 初始化this
    • 初始化arguments
    • 形参赋值
    • 变量提升
    • 代码执行
    • 返回「是否释放,看是否有闭包,即是否有东西被外界占用」
  • 不同点

    • 默认创建一个空的实例对象

      • fn被称之为类/构造函数
      • 创建的这个对象称为实例对象
    • 初始化this的时候,this指向的是创建的实例对象

      • 代码执行中出现this.xxx = xxx是给创建的实例设置私有属性
      • let xx = xx是给私有上下文设置私有变量,和创建的实例对象无关,所以看图上面的额total和say,是给实例设置的,sum是给上下文设置的
    • 返回值如果是原始值类型或者没有返回值,则会返回当前的实例对象

    • 如果有return对象类型的值,就以自己返回的为主