js是一个基于面向对象的单线程的脚本语言
基于面向对象 js不是面向对象 它的使用想跟面向对象用法一样 但是底层是原型的思想
es6为了更像面向对象语言
(1)概述
- 在ES6中,class (类)作为对象的模板被引入,可以通过 class 关键字定义类。
- class 的本质是 function。
- 它可以看作一个语法糖,让对象原型的写法更加清晰、更像面向对象编程的语法。
- 类不可重复声明
- 类定义不会被提升,这意味着必须在访问前对类进行定义,否则就会报错
(2)类定义
(3)类的主体
- 属性:ES6的类中不能直接定义变量,变量被定义在constructor中。
- 方法
- constructor 方法是类的默认方法,创建类的对象时被调用。也被称为类的构造方法(构造函数、构造器)。一个类中有且仅有一个构造方法。
- 原型方法:不需要使用function关键字,通过“对象.原型方法”调用。
- 静态方法:使用static修饰,调用时不需要创建对象,直接通过“类名.静态方法”调用
(4)类的继承
- 解决代码的复用
- 使用extends关键字实现继承
- 子类可以继承父类中所有的方法和属性
- 子类只能继承一个父类(单继承),一个父类可以有多个子类
- 子类的构造方法中必须有super()来指定调用父类的构造方法,并且位于子类构造方法中的第一行
- 子类中如果有与父类相同的方法和属性,将会优先使用子类的(覆盖)