⊗jsOpIhCOM 32 of 60 menu

Gọi phương thức ghi đè trong OOP trong JavaScript

Khi ghi đè, lớp con mất quyền truy cập vào phương thức đã bị ghi đè của lớp cha. Tuy nhiên, vẫn có thể truy cập vào nó. Điều này được thực hiện bằng từ khóa super, trỏ đến lớp cha.

Hãy xem một ví dụ khi chúng ta có thể cần truy cập đến phương thức của lớp cha. Giả sử chúng ta có lớp cha sau:

class User { setName(name) { this.name = name; } getName() { return this.name; } }

Giả sử trong lớp con chúng ta ghi đè phương thức của lớp cha:

class Student extends User { setName(name) { if (name.length > 0) { this.name = name; } else { throw new Error('student name error'); } } }

Có thể thấy rằng, trong phương thức được ghi đè, khi điều kiện được thỏa mãn, về cơ bản mã của phương thức lớp cha được thực thi. Điều này dẫn đến việc trùng lặp mã không cần thiết.

Có thể loại bỏ điều này bằng cách gọi phương thức của lớp cha. Hãy làm điều đó:

class Student extends User { setName(name) { if (name.length > 0) { super.setName(name); // phương thức của lớp cha } else { throw new Error('student name error'); } } }

Cho đoạn mã sau:

class User { setAge(age) { if (age >= 0) { this.age = age; } else { throw new Error('need age more 0'); } } } class Employee { setAge(age) { if (age <= 120) { if (age >= 0) { this.age = age; } else { throw new Error('need age more 0'); } } else { throw new Error('need age less 120'); } } }

Trong lớp Employee, hãy sửa và đơn giản hóa setter tuổi bằng cách sử dụng phương thức gốc của lớp cha.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối