如需创建类继承,使用 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 中的方法,获得了父级的属性和方法的访问权限。
使用关键词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 与实际属性分开。
使用关键词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;