Muungano wa Mababu wa Kilele wa JavaScript

类继承

如需创建类继承,请使用 extends 关键字。

使用类继承创建的类继承了另一个类的所有方法:

Mifano

Kuja kikuu cha 'Model' ambao kina kumwambaa method ya 'Car':

class Car {
  constructor(brand) {
    this.carname = brand;
  }
  present() {
    return 'Ina nia nina ' + 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();

Jifunze tena

super() 方法引用父类。

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

继承对于代码可重用性很有用:在创建新类时重用现有类的属性和方法。

Getter 和 Setter

类还允许您使用 getter 和 setter。

为您的属性使用 getter 和 setter 很聪明,特别是如果您想在返回它们之前或在设置它们之前对值做一些特殊的事情。

如需在类中添加 getter 和 setter,请使用 getset 关键字。

Mifano

为 "carname" 属性创建 getter 和 setter:

class Car {
  constructor(brand) {
    this.carname = brand;
  }
  get cnam() {
    return this.carname;
  }
  set cnam(x) {
    this.carname = x;
  }
}
let myCar = new Car("Ford");
document.getElementById("demo").innerHTML = myCar.cnam;

Jifunze tena

Maelezo:即使 getter 是一个方法,当你想要获取属性值时也不要使用括号。

getter/setter 方法的名称不能与属性名称相同,在本例中为 carname

许多程序员在属性名称前使用下划线字符 _ 将 getter/setter 与实际属性分开:

Mifano

您可以使用下划线字符将 getter/setter 与实际属性分开:

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;

Jifunze tena

Ili tumia kuuza, tumia uambatano wa kumwambia thamani ya kufikia kwa kina, bila viungo vya ukurasa:

Mifano

Tumia kuuza jina la muktadiri kwa "Volvo":

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;

Jifunze tena

Hoisting

Kama matumizi ya mifano na mawilivili mengine ya JavaScript, matumizi ya kikoa haikubaliwa kwenye juu.

Hii inamaanisha kwamba inahitaji kufikiria kufikiria kabla ya kutumia kikoa:

Mifano

//Hii inakataa kwa sababu hii inahitaji kufikiria kufikiria.
//myCar = new Car("Ford")
//Hii itakataa kosa.
class Car {
  constructor(brand) {
    this.carname = brand;
  }
}
//Inawatumia kikoa hiki:
let myCar = new Car("Ford")

Jifunze tena

Maelezo:Kwa mawilivili mengine, kama inayotumika, hatutakaribia kumfanya kosa kwa sababu matumizi ya uharibifu wa JavaScript inasababisha kufichwa kwenye juu (inakubaliwa kwenye juu).