深入理解JS中的对象(三):class 的工作原理
目录 序言 class 是一个特殊的函数 class 的工作原理 class 继承的原型链关系 参考 1.序言 ECMAScript 2015(ES6) 中引入的 JavaScript 类实质上是 JavaScript 现有的基于原型的继承的语法糖。类语法(class)不会为JavaScript引入新的面向对象的继承模型。 2.class 是一个特殊的函数 ES6 的 class 主要提供了更多方便的语法去创建老式的构造器函数。我们可以通过 typeof 得到其类型: class People { constructor(name) { this.name = name; } } console.log(typeof People) // function 那 class 声明的类到底是一个什么样的函数呢?我们可以通过在线工具 ES6 to ES5 来分析 class 背后真正的实现。 3.class 的工作原理 下面通过多组代码对比,来解析 class 声明的类将转化成什么样的函数。 第一组:用 class 声明一个空类 ES6的语法: class People {} 这里提出两个问题: 1.class 声明的类与函数声明不一样,不会提升(即使用必须在声明之后),这是为什么? console.log(People) // ReferenceError class People {