一、创建类和对象
1.1. 在ES5中使用的是function关键字创建类, ES6引入了 class 关键字来创建类。
1.2. 创建类的实例使用 new 关键字。
1.3. 类的 constructor 构造函数:用于传递参数,返回实例对象,通过 new 关键字生成实例时,自动调用该方法。如果没有显式声明构造函数,在类的内部会自动创建一个默认的constructor()构造函数。
1.4. 在类中声明实例方法则使用 方法名(){ 方法体 } ,并且在各方法之间是不需要使用逗号隔开的。
1 //创建类和对象
2 class Test{
3
4 constructor(str){//构造函数
5 this.str = str;
6 }
7
8 say(){ //实例方法
9 console.log(this.str);//hello
10 }
11 }
12
13 let test = new Test(‘hello‘);//生成实例
14 test.say();//调用实例方法
在上述代码中,创建了一个Test类,类的内部声明了一个构造函数和一个实例函数,外部使用new关键字创建了类的实例对象,在创建类的实例对象时会自动调用构造函数,并把 ‘hello’ 字符串赋值给Test类的 str 属性,然后使用 test 对象调用实例函数say()。
注意:在类的内部声明的方法不需要加function关键字,构造方法只能声明一个或者不声明使用默认的构造方法,否则报错。
二、继承
2.1. 类使用 extends 关键字来继承父类。
2.2. 在子类中使用 super 关键字来调用父类的属性和方法。如果在子类的构造函数中使用this关键字,那么super关键字的代码必须在子类构造函数的第一行,否则报错。
1 //类的继承
2 //父类Parent
3 class Parent{
4
5 constructor(str){//父类的构造函数
this.str = str;
{
6
7 }
8
9 //子类 Child 使用extends继承Parent类
10 class Child extends Parent{
11
12 constructor(str){
13 super(); //super关键字调用父类的构造方法
14 this.str = str; //使用this关键字给Child的属性str赋值15 }
16
17 say(){
18 console.log(‘子类的实例方法‘);
19 }
20 }
21
22 let child = new Child(‘hello‘);//生成Child类的实例对象
23 child.say();//调用child类的实例方法
三、静态方法和静态属性
3.1. 静态方法和静态属性都是使用 static 修饰,直接使用类名调用。
1 //静态方法和静态属性
2 class Test{
3
4 static say(str){//静态方法
5 console.log(str);//hello
6 }
7 static str2 = ‘world‘;//静态属性
8 }
9 console.log(Test.str);//使用类名调用静态属性 : world
10 Test.say(‘hello‘);//使用类名调用静态方法
原文:https://www.cnblogs.com/zyonghua/p/12783300.html