⊗jsOpIhCOM 32 of 60 menu

Ўзбек тилида ООП да ўзгартирилган методни чақириш (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 синфида ёш сеттерини соддалаштиринг, асл ота-онанинг методини ишлатган ҳолингизда.

enrohyuzcde