小蜗
专栏

Babel to Class

逐行拆解 Babel 把 Class 语法降级后的编译产物,说明 new 调用校验、_createClass 对原型与静态属性的处理,以及继承中 super、原型链和静态属性的生成方式;再借 WeakMap、WeakSet 模拟私有字段与方法,并讨论原生构造函数继承。

共 4 篇更新于 2021-12-28

  • 01Babel to Class之编译(1)

    文章以一段包含实例字段、getter/setter、静态属性和静态方法的 Class 为例,逐行解读 Babel 编译产物,说明 _classCallCheck 校验 new 调用、_createClass 定义原型与静态属性、_defineProperty 处理实例属性各自的分工。

    2021-12-21

  • 02Babel to Class之继承(2)

    从 Class 继承中的 super、Object.create 和 Reflect.construct 讲起,以 Parent 和 Child 为例,拆解 Babel 编译后生成的 _inherits、_createSuper、_possibleConstructorReturn 等函数,说明子类构造函数、super 调用、原型链和静态属性在降级代码中的处理方式,以及 new.target 与 Reflect.construct 的配合相关细节。

    2021-12-21

  • 03Babel to Class之私有属性(3)

    文章拆解 Babel 编译 Class 私有属性的过程:私有字段用 WeakMap 存储、私有方法用 WeakSet 标记,并借助 _classPrivateFieldGet 等辅助函数在访问时校验实例,从而在运行时模拟 # 语法。

    2021-12-21

  • 04Babel to Class之原生构造函数继承(4)

    2021-12-28