ການຫຼຸດຫຼັງວຽກ 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 声明的默认行为是提升(将声明移到顶部)。