OOP-da JavaScript-de ene-klassyň usullaryny üýtgetmek
Miras alyjy klas, eýný atly usul döredip, ene-klasynyň usulynyň üstüne ýazyp biler. Mysala seredeliň. Bizde şeýle ene-klas bardyr diýeliň:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Geliň miras alyjy klasda eýný atly usul döredeliň:
class Student extends User {
setName(name) {
}
}
Adatça, ene-klas usullarynyň üstüne ýazmak, şol usulyň işini üýtgetmek ýa-da goşmaça işlerini ýerine ýetirmek üçin gerek bolýar. Bizde bolsa, atyň uzynlygyny barlagyny goşalyň:
class Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('student name error');
}
}
}
Indi, hakykatdanam üstüne ýazylyş usulynyň çaýrylýandygyna göz ýetireliň. Ilki bilen, miras alyjy klasyň obyektini döredeliň:
let student = new Student;
Indi, usulymyzy dogry baha berip çaýyralyň:
student.setName('john');
Indi bolsa, usuly nädogry baha berip çaýyralyň. Netijede, konsolda ýüze çykan ýalňyşlygy göreris:
student.setName(''); // ýalňyşlyk
User klasynda ýaş üçin
getter we setter düzüň.
Employee klasynda ýaş setteriniň
üstüne ýazyň we onuň içinde ýaşyň
18-den 65 ýaşa çenli
durandygyny barlaň.