JavaScript 类继承

如需创建类继承,使用 extends 关键字。使用类继承创建的类继承了另一个类的所有方法:

class Car {
  constructor(brand) {
    this.carname = brand;
  }
  present() {
    return 'I have a ' + this.carname;
  }
}

class Model extends Car {
  constructor(brand, mod) {
    super(brand);
    this.model = mod;
  }
  show() {
    return this.present() + ', it is a ' + this.model;
  }
}

let myCar = new Model("Ford", "Mustang");
document.getElementById("demo").innerHTML = myCar.show();

super() 方法引用父类。

通过在 constructor 方法中调用 super() 方法,我们调用了父级的 constructor 中的方法,获得了父级的属性和方法的访问权限。

getter

使用关键词get

class Car {
  constructor(brand) {
    this._carname = brand;
  }
  get carname() {
    return this._carname;
  }
  set carname(x) {
    this._carname = x;
  }
}

let myCar = new Car("Ford");

document.getElementById("demo").innerHTML = myCar.carname;

即使 getter 是一个方法,当你想要获取属性值时也不要使用括号。getter/setter 方法的名称不能与属性名称相同,在本例中为 carname。可使用下划线字符 _ 将 getter/setter 与实际属性分开。

setter

使用关键词set

class Car {
  constructor(brand) {
    this._carname = brand;
  }
  get carname() {
    return this._carname;
  }
  set carname(x) {
    this._carname = x;
  }
}

let myCar = new Car("Ford");
myCar.carname = "Volvo";
document.getElementById("demo").innerHTML = myCar.carname;
上一篇:Verilog中的阻塞与非阻塞赋值


下一篇:SQL Server Always On延迟观测和预警