一、类
ES2015之前没有原生类机制,但很多时候类是必须的,所以在ES2015之前是利用函数原型来实现类系统。
1.ES6类的基本语法
类中定义的方法都是带有作用域的普通函数,不是箭头函数。方法内第一层所引用的this都指向当前实例。
当实例方法内包含箭头函数,
2.类的继承
子类继承父类,那么子类的constructor构造函数中必须使用super函数调用父类的构造函数后才能在子类的构造函数中使用this。
而子类的其他方法不用super函数也可以用this来指当前实例。
ES2015同样可以将以前使用构建函数模拟的类作为父类来继承。
3.Getter/Setter
4.静态方法
静态方法适用于为类对象本身定义方法,而不只是类的实例方法。
比如定义子类实现参数固化。
静态方法extend先定义了一个继承于Animal的子类,并在该子类的构造函数中将extend方法的后续参数作为形参传入super中,以实现参数固化。
5.注意事项
类语法可以和以前的原型一起使用,但当函数为声明式的时候(另一种是定义式)存在函数提升问题,而类语法是不支持提升的。
类不支持私有属性。
类不支持多重继承。
暂时没有协议和接口概念。