Uvod v abstraktne razrede v JavaScript

JavaScript je objektno orientiran jezik, saj je večina elementov v javascriptu objekti, ki pričakujejo primitivne vrste podatkov.

V objektno usmerjenem programiranju (OOP) je pojem abstrakcije skriti podrobnosti o izvajanju in uporabnikom pokazati bistvene značilnosti predmeta. Ta funkcija abstrakcije OOP povečuje razumljivost in vzdržnost kode, ki jo pišemo, in zmanjšuje podvajanje kode. Ker se abstrakcija večinoma uporablja v programskih jezikih, kot je Java, bomo to funkcijo uporabili v JavaScript.

V abstraktnih razredih v spletnem dnevniku JavaScript bomo razpravljali o abstraktnih predavanjih v JavaScript. Preden se poglobimo v izvajanje abstraktnega razreda v JavaScript, poglejmo, kaj so abstraktni razredi.

Kaj so abstraktni razredi?

  • Abstraktne razrede je mogoče opredeliti kot razrede, ki jih ni mogoče instancirati, tj. Katerih referenc predmeta ni mogoče ustvariti in vsebujejo znotraj njega eno ali več abstraktnih metod.
  • Abstraktna metoda je metoda, ki jo je mogoče samo deklarirati, vendar je ne izvaja. Abstraktni razredi morajo biti podedovani in zahtevajo podklase, da zagotovijo izvedbe za metodo, deklarirano v abstraktnem razredu.
  • Tako kot v Javi imamo tudi ključno besedo abstrakt, da razred postane abstrakten razred, tudi v JavaScript ni takšnih rezervnih ključnih besed, ki bi razred razglasile za abstrakten razred.
  • V spodnjem primeru bomo v JavaScript zakodirali nekaj vrstic in preverili, ali lahko ustvarimo abstrakten razred in preverimo, ali lahko zadovoljimo njegove lastnosti ali ne.

Primeri izvlečnega razreda v JavaScript

Oglejmo si nekaj primerov s pomočjo programske kode

Primer # 1: Izvleček ustvarjanja razredov

Koda:



//Created an abstract class (constructor function)
function Employee()
(
this.empName= "empName";
if(this.constructor === Employee)(
throw new Error("FYI: Instance of Abstract class cannot be instantiated");
)
) ;
// Method (function) of our abstract class
Employee.prototype.display=function()
( return this.empName; )
var employee = new Employee();

Izhod -

Pojasnilo zgornje kode

V zgornjem scenariju kode smo ustvarili eno funkcijo konstruktorja Zaposleni, ki deluje kot abstrakten razred. Ustvarili smo tudi funkcijo prikaza, da preverimo ime zaposlenega. V zadnji vrstici JavaScript ustvarimo referenco predmeta ali primerek (zaposlenega) abstraktnega razreda Zaposleni, da preverimo, ali se objekt ustvarja ali se skozi funkcijo prikaza prikaže napaka.

Z nadaljevanjem zgornjega primera bomo ustvarili še eno funkcijo, ki razširi lastnosti in metode našega abstraktnega razreda Zaposleni. Glede Jave bomo ustvarili podrazred in naš zaposleni bo razred.

Primer # 2: Razširitev abstraktnega razreda

Koda:



//Created an abstract class (constructor function)
function Employee()
(
this.empName="empName";
if(this.constructor === Employee)(
throw new Error("You cannot create an instance of Abstract Class");
)
);
// Method (function) of our abstract class
Employee.prototype.display=function()
(
return "Employee name is: "+this.empName;
)
//Created a subclass (constructor function)
function Manager(fullName)
(
this.empName=fullName;
)
//Created an object of subclass (extending abstract class)
Manager.prototype=Object.create(Employee.prototype);
var mang=new Manager("Aniket Davda");
console.log(mang.display());

Izhod

Pojasnilo zgornje kode

V zgornjem primeru koda smo abstrakcijo dosegli tako, da smo ustvarili upravitelja funkcij / razredov, ki razširja naš abstraktni razred Employee skozi verigo prototipov (pomemben koncept v JavaScript, s pomočjo katerega se doseže dedovanje). Podrobnosti o izvedbi, ki smo jih skrivali od uporabnika, in dostopajo samo do funkcij, ki ustrezajo njegovim zahtevam.

V zgornjih primerih 1 in 2 smo lahko dosegli abstrakcijo, čeprav resnično nismo zadovoljili vseh lastnosti abstraktnega razreda. Po definiciji abstraktnih razredov njegovega predmeta ni mogoče ustvariti in bi moral imeti eno ali več abstraktnih metod.

S izdajo ES6 je JavaScript postal veliko enostavnejši in je v njem uvedel nove funkcije razredov kot na Javi in ​​njegove dodatne funkcije. Oglejmo si spodnji primer, kjer v JavaScript izvajamo razred skupaj z lastnostmi abstrakcije.

Primer # 3: Izvleček razreda - celotna koda

Koda:



class Employee
(
constructor() (
if(this.constructor == Employee)(
throw new Error(" Object of Abstract Class cannot be created");
)
)
display()(
throw new Error("Abstract Method has no implementation");
)
)
class Manager extends Employee
(
display()(
//super.display();
console.log("I am a Manager");
)
)
//var emp = new Employee;
var mang=new Manager();
mang.display();

Izhod 1 - pravilen izhod

Rezultat 2 - Komentirajte super.display ()

Rezultat 3 - Komentirajte var emp = novi zaposleni ()

Pojasnilo zgornje kode

Zgornji delček kode skoraj izgleda kot java koda, v kateri so definirani razredi, konstruktorji, metode in predmeti, to je čarovnija sproščanja ES6. Ko se vrnemo k kodi, lahko vidimo, da je razred Employee abstrakten razred in prikaže napako, ko je ustvarjen njegov objekt (Output 3) in vsebuje abstraktni prikaz (), katerega izvedba je določena v metodi display () Manager razreda, ki razširja lastnosti in metode razreda Employee.

Sklep

Pri obravnavanju abstrakcije moramo imeti v mislih, da ni mogoče ustvariti primerka abstraktnega razreda. Za zaključek smo izvedeli, kako lahko abstrahiranje koncepta OOP implementiramo v JavaScript in lahko izvaja abstraktni razred z vsemi lastnostmi.

Priporočeni članki

To je vodnik za Abstraktne razrede v JavaScript. Tukaj razpravljamo o uvodu v Abstraktne razrede v JavaScript, kaj so abstraktni razredi skupaj z ustreznimi primeri. Obiščite lahko tudi druge naše predlagane članke, če želite izvedeti več -

  1. Kaj je novega v Javi 8?
  2. Prevladujoče v OOP
  3. Python alternative
  4. Vrste diagramov UML
  5. PHP Ključne besede
  6. Vrste PL / SQL podatkov
  7. Vrzi proti metanju | Top 5 razlik, ki bi jih morali vedeti
  8. Različnih top 36 ključnih besed v SQL s primeri
  9. Vodnik po različnih vrstah podatkov C #
  10. Različne vrste podatkov SQL s primeri