⊗jsOpIhPtM 37 of 60 menu

JavaScript-də OOP-də Mühafizə Olunan Metodlar

Şəxsi metodlar miras alınmır və sinif xaricindən görünmür. Bəzən, ancaq, miras alınan, lakin sinif xaricindən görünməyən metodlara ehtiyac duyulur. Belə metodlar mühafizə olunan (protected) adlanır. JavaScript, təəssüf ki, belə metodları dəstəkləmir.

Ona görə də mən belə metodlar yaratmağa imkan verən müəyyən bir razılaşmanı təqdim etməyi təklif edirəm. Biz belə metodların adlarını altxətt ilə başlayaq. Əslində biz köhnə ümumi qəbul edilmiş şəxsi metodlar razılaşmasından istifadə edəcəyik. Yalnız onları miras alındıqları üçün mühafizə olunan adlandıracağıq, ancaq onları xaricdən istifadə etməyəcəyik. Əslində, köhnə razılaşmaya görə məhz belə istifadə olunurlar.

Beləliklə, gəlin mühafizə olunan metodu olan ana sinif yazaq:

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

Gəlin bu mühafizə olunan metoddan alt sinifdə istifadə edək:

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

Aşağıdakı kodda köməkçi metodu mühafizə olunan edin:

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; } }
Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČ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
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et