Siêu từ khóa JavaScript

Khi chúng tôi làm việc với các lớp trong JavaScript, chúng tôi thường sử dụngsupertừ khóa.

Trong bài đăng này, tôi muốn làm rõ nó hữu ích cho điều gì.

Giả sử bạn có một lớp họcCar:

class Car {

}

và trong lớp học này, chúng tôi có mộtconstructor()phương pháp:

class Car {
  constructor() {
    console.log('This is a car')
  }
}

Phương thức khởi tạo là đặc biệt vì nó được thực thi khi lớp được khởi tạo:

const myCar = new Car() //'This is a car'

Bạn có thể có mộtTeslalớp mở rộngCarlớp học:

class Tesla extends Car {

}

CácTeslalớp kế thừa tất cả các phương thức và thuộc tính củaCar, bao gồmconstructorphương pháp.

Chúng tôi có thể tạo một phiên bản củaTeslalớp học, tạo mớimyCarvật:

const myCar = new Tesla()

Và hàm tạo ban đầu trongCarvẫn được thực thi, bởi vìTeslakhông có một cái riêng của nó.

Chúng tôi có thể ghi đèconstructor()phương pháp trongTeslalớp học:

class Tesla extends Car {
  constructor() {
    console.log('This is a Tesla')
  }
}

const myCar = new Tesla()

sẽ inThis is a Tesla.

bên trongconstructor()phương pháp chúng ta cũng có thể gọisuper()để gọi cùng một phương thức trong lớp cha:

class Tesla extends Car {
  constructor() {
    super()
    console.log('This is a Tesla')
  }
}

Kêu gọi

const myCar = new Tesla()

bây giờ sẽ thực thi 2 bản ghi bảng điều khiển. Đầu tiên cái được xác định trong hàm tạo lớp Car, cái thứ hai là cái được xác định trong hàm tạo lớp Tesla:

'This is a car'
'This is a Tesla'

Note that super() can only be called in the constructor, not in other methods.

And we can pass in any parameter, if the constructor accepts parameters.


More js tutorials: