ES6 中的类其实只是语法糖,并没有在本质上产生改变。

1. 定义类

  1. class A {
  2. //=> class 声明一个类,只能通过 new 执行
  3. construtor() {
  4. //=> 给自身添加私有属性和方法
  5. // 只有放入 this 中的才会出现在实例上
  6. this.a = 12;
  7. this.b = 13;
  8. }
  9. // 这是 ES6 对象中函数的简写
  10. getName () {
  11. //=> 给原型添加方法
  12. console.log(1);
  13. }
  14. name = 'a' //=> 给原型添加属性
  15. // ES7 现在浏览器是不支持
  16. getY=()=>{
  17. // 这是一个箭头函数在原型上的写法
  18. }
  19. static getName() {
  20. //=> 相当于把 A 当作对象来处理,添加方法
  21. console.log(2);
  22. }
  23. // ES7 静态属性
  24. static name = 'aa'
  25. }

通过 class 定义的类,只能使用 new 来创建,不能像函数一样直接执行。
可以在创建类的时候,传递参数,此时在 constructor 里面进行接收

  1. class A {
  2. construtor(name) {
  3. this.name = name;
  4. }
  5. }
  6. new A('a');

2. extend 继承

  1. class A extends Fn{
  2. constructor(){
  3. // 继承了类Fn的私有属性
  4. // 不仅继承私有,还继承公有
  5. super();
  6. }
  7. }