总结
- 定义类的两种方式:类声明和类表达式;
- 与函数不同的是:函数声明可以提升,但类定义不能;函数受函数作用域限制,而类受块作用域限制;
- 类的构成:包含构造函数方法、实例方法、获取函数、设置函数和静态类方法,但这些不是必需的,可以只设置一个空类;
- 使用 new 操作符实例化 Person类的操作等于使用 new 调用其构造函数。
- 普通构造函数如果 不使用 new 调用,那么就会以全局的 this(通常是 window)作为内部对象。调用类构造函数时如果 忘了使用 new 则会抛出错误
- 通过 typeof 操作符检测类标识符,表明它是一个函数
- 与立即调用函数表达式相似,类也可以立即实例化:
- 在类里定义的方法作为原型方法,类的内部所有定义的方法,都是不可枚举的
- 不能在类块中给原型添加原始值或对象作为成员数据:
- 类定义也支持获取和设置访问器。语法与行为跟普通对象一样
- 静态类方法在类定义中使用 static 关键字作为前缀,在静态成员中,this 引用类自身,该方法不会被实例继承,而是直接通过类来调用;
- 迭代器与生成器方法
- 类继承使用的是新语法,但背后依旧使用的是原型链
- 在类构造函数中使用 super 可以调用父类构造函数,仅 限于类构造函数、实例方法和静态方法内部;