ການຫຼຸດຫຼັງວຽກ JavaScript

ການລວມປະເພດ

ສຳລັບທີ່ຈະສ້າງການລວມປະເພດຈະໃຊ້: extends ຄຳສັບຄົບ.

ປະເພດທີ່ຖືກສ້າງດ້ວຍການລວມປະເພດຈະຮັບຜິດຊອບຂອງປະເພດອື່ນທັງໝົດ:

实例

ສ້າງປະເພດ "Model" ທີ່ຈະຮັບຜິດຊອບຂອງປະເພດ "Car"

class Car {
  constructor(brand) {
    this.carname = brand;
  }
  present() {
    return 'ຂ້ອຍມີ ' + 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() ວິທີຂອງປະເພດຜູ້ໃຫຍ່.

ຜ່ານການເອົາໃຊ້: super() ໃນການກະທຳວິທີ, ພວກເຈົ້າໄດ້ກໍາລັງສ້າງ constructor ຂອງປະເພດຜູ້ໃຫຍ່, ເພື່ອເອົາຄວາມສຳລັບປະເພດແລະວິທີຈາກປະເພດຜູ້ໃຫຍ່:

ການລືບລົດຂາຍມັນຫຼາຍຫຼາຍສຳລັບການສືບຕໍ່ໃຊ້ຂອງລາຍການ: ສືບຕໍ່ໃຊ້ປະເພດທີ່ໃຫຍ່ໃນທີ່ພວກເຈົ້າຈະສ້າງປະເພດໃໝ່:

Getter ແລະ Setter

ປະເພດຍັງສາມາດຫຼິ້ນ getter/setter:

ມັນສະບາຍຫຼາຍທີ່ພວກເຈົ້າຈະໃຊ້ getter/setter ສຳລັບປະສົງຂອງພວກເຈົ້າ, ເພື່ອມີການກະທຳຫຼາຍຫຼາຍກ່ອນຫຼິ້ນມູນຄ່າຂອງພວກເຈົ້າ:

ຖ້າພວກເຈົ້າຕ້ອງໃຫ້ getter/setter ໃນປະເພດ, ກະທຳຕາມ: get ແລະ set ຄຳສັບຄົບ.

实例

ສ້າງ getter ແລະ setter ສຳລັບປະສົງ "carname":

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;

亲自试一试

注释:ເຖິງວ່າ getter ແມ່ນວິທີ, ຖ້າພວກເຈົ້າຕ້ອງເອົາຄູ່ການມູນຄ່າຂອງປະສົງ, ບໍ່ຄວນໃຊ້ກາກຜູກ:

ຊື່ວິທີ getter/setter ບໍ່ຄວນຈະຄືກັບຊື່ປະສົງ, ໃນຄະນະນີ້ແມ່ນ: carname

ຫຼາຍຜູ້ຂຽນຂອງລາຍການໃຊ້ຄຳອີກອອກ _ ໂດຍຄຳສັບຄົບຂອງຂໍ້ມູນຈາກ getter/setter:

实例

ພວກເຈົ້າສາມາດໃຊ້ຄຳອີກອອກຂອງລາຍການ ເພື່ອຫຼິ້ນຫຼາຍ 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;

亲自试一试

ຖ້າພວກເຈົ້າຕ້ອງໃຊ້ setter, ກະທຳຕາມພາສານຂອງຄູ່ການຕັ້ງມູນຄ່າບໍ່ມີກາກຜູກ:

实例

ໃຊ້ setter ເພື່ອປ່ຽນຊື່ລົດເປັນ "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;

亲自试一试

Hoisting

与函数和其他 JavaScript 声明不同,类声明不会被提升。

这意味着您必须先声明类,然后才能使用它:

实例

//您还不能使用该类。
//myCar = new Car("Ford")
//This would raise an error.
class Car {
  constructor(brand) {
    this.carname = brand;
  }
}
//现在您可以使用该类:
let myCar = new Car("Ford")

亲自试一试

注释:对于其他声明,如函数,在声明之前尝试使用它时不会出错,因为 JavaScript 声明的默认行为是提升(将声明移到顶部)。