⊗jsOpIhPtM 37 of 60 menu

Kaedah Terlindung dalam OOP dalam JavaScript

Kaedah peribadi tidak diwarisi dan tidak kelihatan dari luar kelas. Walau bagaimanapun, kadangkala kaedah diperlukan yang diwarisi, tetapi tidak kelihatan dari luar kelas. Kaedah sedemikian dipanggil terlindung (protected). Malangnya, JavaScript tidak menyokong kaedah sedemikian.

Oleh itu, saya cadangkan untuk memperkenalkan satu persetujuan yang membolehkan penciptaan kaedah sedemikian. Kita akan mulakan nama kaedah sedemikian dengan garis bawah. Secara praktikalnya kita menggunakan persetujuan lama yang diterima umum tentang kaedah peribadi. Hanya kita namakan kaedah sedemikian sebagai terlindung sebagai tanda bahawa ia diwarisi, tetapi kita tidak akan menggunakannya dari luar. Walau bagaimanapun, inilah cara ia digunakan menurut persetujuan lama itu.

Jadi, mari tulis kelas induk dengan kaedah terlindung:

class User { setName(name) { this.name = name; } getName() { return this._capeFirst(this.name); } _capeFirst(str) { return str[0].toUpperCase() + str.slice(1); } }

Mari gunakan kaedah terlindung ini dalam kelas anak:

class Student extends User { setSurn(surn) { this.surn = surn; } getSurn() { return this._capeFirst(this.surn); } }

Dalam kod berikut, jadikan kaedah pembantu sebagai kaedah terlindung:

class User { setName(name) { if (this._notEmpty(name)) { this.name = name; } } getName() { return this.name; } _notEmpty(str) { return str.length > 0; } } class Employee extends User { setSurn(surn) { if (this._notEmpty(surn)) { this.surn = surn; } } getSurn() { return this.surn; } }
Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak