2.2JavaScript语言的类(Class)

1.类声明

class 类名 {
  //类体
}

2.成员定义

class 类名 {
  //静态字段
  static #a = 1;
  
  //静态getter
  static get a() {
    return this.#a;
  }

  //静态setter
  static set a(value) {
    this.#a = value;
  }

  //静态方法
  static f1() {
  }

  //新实例字段
  #b = 1;

  //实例getter
  get b() {
    return this.#b;
  }

  //实例setter
  set b(value) {
    this.#b = value;
  }
  
  //实例方法
  f2() {
  }

  //构造方法
  constructor(b) {
    //老实例字段
    this.#b = b;
  }
}

3.继承

注意:JavaScript 语言是单继承。

class 子类名 extends 父类名 {
  //子类体
}

4.创建对象

4.1类创建对象方式

const 对象名 = new 类名(实参);

4.2对象字面量创建对象方式

const 对象名 = {
  //数据属性
  _a: 1,
  
  //实例getter
  get a() {
    return this._a;
  },

  //实例setter
  set a(value) {
    this._a = value;
  },

  //方法
  f() {
  }
};

5.访问成员

//外部访问
//类
类名.静态字段名;
类名.静态访问器属性名;
类名.静态方法名();
对象名.实例字段名;
对象名.实例访问器属性名;
对象名.实例方法名();

//对象字面量
对象名.数据属性名;
对象名.访问器属性名;
对象名.方法名();
//内部访问
//类
this.静态字段名;
this.静态访问器属性名;
this.静态方法名();
this.实例字段名;
this.实例访问器属性名;
this.实例方法名();

//对象字面量
this.数据属性名;
this.访问器属性名;
this.方法名();

6.this关键字

如果在类上下文,则 this 关键字指向当前类。

如果在对象上下文,则 this 关键字指向当前对象。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/javascript/javascriptlang/4729.html

huoxiaoqiang的头像huoxiaoqiang

发表回复

登录后才能评论
分享本页
返回顶部