⊗jsOpIhPPP 36 of 60 menu

JavaScriptтеги ООПде мурас коюу убагындагы жекече касиеттердин көйгөйү

Жекече касиеттердин мурасталбашы күтүлбөгөн көйгөйгө алып келиши мүмкүн. Келгиле, мисал менен карап көрөлү. Бизде төмөнкүдөй жекече касиети бар ата-эне класс болсун:

class User { #age; setAge(age) { this.#age = age; } getAge() { return this.#age; } }

Эне классында биз жашты бирдикке көбөйтүүчү метод жасайлы деп чечилдик деп коёлу. Бирок, ата-эненин жекече касиетин өзгөртүү аракети катага алып келет:

class Student extends User { incAge() { this.#age++; // ката } }

Эне классында жекече касиет #age жарыяланса, ката жоголот:

class Student extends User { #age; incAge() { this.#age++; } }

Мына ушул жерде бизди тузак күтүп турат! Чынында эле биз эки жекече касиетти түздүк: бири ата-энэде, бири энэде. Жана алар толугу менен өз алдынча иштейт. Бул ата-эненин методдору өз касиетин өзгөртөт, ал эми энэнин методдору өзүнүкүн өзгөртөт дегенди билдирет.

Бул көйгөйдүн чынында эле чечими бар. Жөн гана ата-эненин жекече касиеттери менен ошол ата-эненин методдору аркылуу иштөө керек. Келгиле, биздин кодду ушуга ылайык кайра жазалы:

class Student extends User { incAge() { let age = this.getAge(); age++; this.setAge(age); } }

Жөнөкөйлөтсө болот:

class Student extends User { incAge() { this.setAge(++this.getAge()); } }

Төмөнкү коддо эне класста ата-эненин методу кайра аныкталат. Бул коддогу көйгөйлөрдү оңдогула:

class User { #name; setName(name) { this.#name = name; } getName() { return this.#name; } } class Employee extends User { setName(name) { if (name.length > 0) { this.#name = name; } } }
Кыргызча
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
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу