JavaScript-luokan perintö

Tässä opetusohjelmassa opit JavaScript-luokan perinnöstä esimerkkien avulla.

Luokan perintö

Perinnön avulla voit määrittää luokan, joka vie kaikki toiminnot vanhemmalta luokalta ja jonka avulla voit lisätä lisää.

Luokan perimistä käyttämällä luokka voi periä kaikki toisen luokan menetelmät ja ominaisuudet.

Perintö on hyödyllinen ominaisuus, joka mahdollistaa koodin uudelleenkäytettävyyden.

Voit käyttää luokan perintöä käyttämällä extendsavainsanaa. Esimerkiksi,

 // parent class class Person ( constructor(name) ( this.name = name; ) greet() ( console.log(`Hello $(this.name)`); ) ) // inheriting parent class class Student extends Person ( ) let student1 = new Student('Jack'); student1.greet();

Tuotos

 Hei Jack

Yllä olevassa esimerkissä Studentluokka perii kaikki luokan menetelmät ja ominaisuudet Person. Siksi Studentluokassa on nyt nameominaisuus ja greet()menetelmä.

Sitten pääsimme luokan greet()menetelmään Studentluomalla student1objektin.

JavaScript super () -avainsana

superAvainsanan sisällä käytettävien lapsi luokka tarkoittaa sen vanhemman luokan. Esimerkiksi,

 // parent class class Person ( constructor(name) ( this.name = name; ) greet() ( console.log(`Hello $(this.name)`); ) ) // inheriting parent class class Student extends Person ( constructor(name) ( console.log("Creating student class"); // call the super class constructor and pass in the name parameter super(name); ) ) let student1 = new Student('Jack'); student1.greet();

Tässä supersisällä Studentluokka viittaa Personluokkaan. Siksi, kun Studentluokan konstruktoria kutsutaan, se kutsuu myös Personluokan rakentajaa, joka antaa sille nimenomaisuuden.

Korvaava menetelmä tai ominaisuus

Jos lapsiluokalla on sama menetelmä tai ominaisuuden nimi kuin vanhemmalla luokassa, se käyttää lapsiluokan menetelmää ja ominaisuutta. Tätä käsitettä kutsutaan menetelmän ohittamiseksi. Esimerkiksi,

 // parent class class Person ( constructor(name) ( this.name = name; this.occupation = "unemployed"; ) greet() ( console.log(`Hello $(this.name).`); ) ) // inheriting parent class class Student extends Person ( constructor(name) ( // call the super class constructor and pass in the name parameter super(name); // Overriding an occupation property this.occupation = 'Student'; ) // overriding Person's method greet() ( console.log(`Hello student $(this.name).`); console.log('occupation: ' + this.occupation); ) ) let p = new Student('Jack'); p.greet();

Tuotos

Hei opiskelija Jack. ammatti: Opiskelija

Tässä occupationominaisuus ja greet()menetelmä ovat läsnä vanhempien Personluokassa ja Studentlapsiluokassa. Siksi Studentluokka ohittaa occupationominaisuuden ja greet()menetelmän.

Perinnön käyttö

  • Koska lapsiluokka voi periä kaikki vanhempien luokan toiminnot, tämä sallii koodin uudelleenkäytettävyyden.
  • Kun toiminto on kehitetty, voit yksinkertaisesti periä sen. Pyörää ei tarvitse keksiä uudelleen. Tämä mahdollistaa puhtaamman koodin ja helpompi ylläpitää.
  • Koska voit lisätä omia toimintoja lapsiluokkaan, voit periä vain hyödylliset toiminnot ja määrittää muut vaaditut ominaisuudet.

Mielenkiintoisia artikkeleita...