⊗jsOpIhCOM 32 of 60 menu

การเรียกใช้เมธอดที่ถูกโอเวอร์ไรด์ใน OOP ใน JavaScript

เมื่อทำการโอเวอร์ไรด์ คลาสลูกจะสูญเสีย การเข้าถึงเมธอดของคลาสพ่อแม่ที่ถูกโอเวอร์ไรด์ อย่างไรก็ตาม การเข้าถึงเมธอดนั้นยังคงเป็นไปได้ สิ่งนี้ทำได้โดยใช้คำสำคัญ super, ซึ่งชี้ไปยังคลาสพ่อแม่

มาดูตัวอย่างกัน เมื่อเราอาจต้องการการเข้าถึง เมธอดของคลาสพ่อแม่ สมมติว่าเรามีคลาสพ่อแม่ดังต่อไปนี้:

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

สมมติว่าในคลาสลูก เราได้โอเวอร์ไรด์เมธอดของพ่อแม่:

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

จะสังเกตได้ว่าในเมธอดที่ถูกโอเวอร์ไรด์ เมื่อเงื่อนไขเป็นจริง รหัสที่ทำงานจริงๆ คือรหัสของเมธอดพ่อแม่ ทำให้เกิดการซ้ำซ้อนของรหัสที่ไม่จำเป็น

เราสามารถกำจัดมันได้โดยการเรียกใช้ เมธอดของพ่อแม่ มาทำกัน:

class Student extends User { setName(name) { if (name.length > 0) { super.setName(name); // เมธอดของพ่อแม่ } else { throw new Error('student name error'); } } }

กำหนดรหัสต่อไปนี้:

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'); } } }

ในคลาส Employee ให้แก้ไข และลดความซับซ้อนของตัวตั้งค่าอายุ โดยใช้ เมธอดเดิมของคลาสพ่อแม่

ไทย
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ʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ