A JavaScript bevált nyelv, de csak a klasszikus objektum-orientált programozás (OOP) támogatását adta az ES6-ban. Amíg nem adott hozzá olyan funkciókat, mint az osztálydeklarációk, a JavaScript egy kevésbé ismert prototípus-alapú paradigmával kezelte az OOP-t. Bármelyik megközelítéssel azonban összetett alkalmazásokat hozhat létre, amelyek objektumalapú szolgáltatásokat használnak.

A prototipikus JavaScript konstruktora úgy néz ki, mint bármely más függvény. A fő különbség az, hogy ezt a konstruktor függvényt használhatja objektumok létrehozására.

Mi az a konstruktor a JavaScriptben?

A konstruktőrök az egyik az objektumorientált programozás alapfogalmai. A konstruktor egy függvény, amellyel létrehozhat egy objektum példányát. Az új objektumok létrehozása mellett a konstruktor meghatározza a hozzá tartozó tulajdonságokat és viselkedéseket.

Konstruktor szintaxis

funkcióNameOfConstructor() {
ezt.tulajdon1 = "Tulajdonság1";
ezt.tulajdon2 = "Tulajdonság2";
ezt.tulajdon3 = "Tulajdonság3";
}

A konstruktort a

instagram viewer
funkció kulcsszó, mivel lényegében az mint bármely más funkció. A kivitelezők azonban betartják a következő szabályokat:

  1. A többi függvénytől való megkülönböztetéshez használjon egy nagybetűvel kezdődő nevet a konstruktornak.
  2. A kivitelezők a ez kulcsszót másképp. Egy konstruktor belsejében, ez az új objektumra utal, amelyet a konstruktőr létrehoz.
  3. A JavaScript függvényekkel ellentétben a konstruktorok tulajdonságokat és viselkedéseket határoznak meg az értékek visszaadása helyett.

Konstruktor használata új objektumok létrehozásához

JavaScriptben egy konstruktor használata egyszerű feladat egy objektum létrehozásához. Íme egy egyszerű konstruktor, amelyet egy meghívás követ:

funkcióDiák() {
this.name = "Gloria";
ezt.gender = "Női";
ez.életkor = 19;
}

hagyja diáklány = új Diák();

Ebben a példában női tanuló egy objektum, amelyet a Diák konstruktőr. Használja a új kulcsszó a függvény konstruktorként való meghívásához. Ez a kulcsszó arra utasítja a JavaScriptet, hogy hozzon létre egy új példányt Diák. Ezt a függvényt nem szabad meghívni a nélkül új kulcsszó, mert a ez a konstruktor belsejében nem fog új objektumra mutatni. Az építkezés után, női tanuló minden tulajdonságával rendelkezik Diák. Ezeket a tulajdonságokat ugyanúgy elérheti és módosíthatja, mint bármely más objektum esetében.

Fontos tudnivalók a JavaScript-konstruktorokról

A kivitelezőkkel való munka nagyon fárasztó, ugyanakkor könnyű feladat is lehet. Íme néhány fontos dolog, amit minden fejlesztőnek tudnia kell a konstruktorokkal való együttműködésről.

Konstruktorok használata érvekkel

A konstruktort kiterjesztheti argumentumok fogadására. Ez nagyon fontos, ha reszponzív, rugalmas kódot szeretne írni.

Amikor létrehoz egy objektumot egy konstruktorból, az objektum örökli a konstruktorban deklarált összes tulajdonságot. Például a női tanuló A fent létrehozott tulajdonságok lesznek név, neme, és kor rögzített kezdeti értékekkel. Bár az egyes tulajdonságokat manuálisan is módosíthatja, sok munka lenne, ha sok objektumot használó programot írna.

Szerencsére a JavaScript-konstruktorok, mint bármely más függvény, képesek paramétereket elfogadni. Meg tudod változtatni a Diák A konstruktor két paramétert fogad el:

funkcióDiák(név, nem) {
ez.name = név;
ez.gender = nem;
ez.életkor = 19;
}

A fentiek alapján létrehozott összes objektum rendelkezik kor állítva 19. Megtervezheti így a konstruktort, ha van olyan tulajdonság, amelyre az összes objektumot szeretné.

Most már definiálhat egyedi objektumokat ugyanabból a konstruktorból különböző argumentumok átadásával.

Az érvek rugalmasabbá teszik a konstruktőröket. Időt takarítanak meg és ösztönzik a tiszta kódot.

Objektummódszerek meghatározása

A metódus egy objektumtulajdonság, amely függvény. A módszerek javítják a kódot az OOP-ban, mivel különböző viselkedéseket ad hozzá az objektumokhoz. Íme egy példa:

funkcióDiák(név, nem) {
ez.name = név;
ez.gender = nem;
ez.életkor = 19 ;

ez.sayName = funkció () {
Visszatérés`Az én nevem ${name}`;
}
}

A fentiek hozzáadják a funkciót mondd Name a kivitelezőnek.

Tegyük fel, hogy ezzel a konstruktorral létrehoz egy objektumot, amelyet egy változóban tárol, női tanuló. Ezt a függvényt ezután az alábbi kóddal hívhatja meg:

női tanuló.monddName()

A Prototípus

Korábban létrehoztuk Diák oly módon, hogy minden példányának legyen egy kor értékű ingatlan 19. Ez azt eredményezi, hogy mindegyikhez duplikált változó lesz Diák példányt hoz létre.

A megkettőzés elkerülése érdekében a JavaScript a prototípusok fogalmát használja. A konstruktorból létrehozott összes objektum megosztja a prototípus tulajdonságait. Hozzáadhatja a kor tulajdonát Diák prototípus az alábbiak szerint:

Diák.prototípus.életkor = 19;

Ezzel minden esetben a Diák lesz a kor ingatlan. Kijelentve prototípus tulajdonságai egy módja annak, hogy csökkentse a duplikált kódot az alkalmazásban. Lehetőleg szabványossá teszi a kódot.

A prototípus tulajdonság lehet objektum

A prototípus tulajdonságait egyenként is hozzáadhatja a fent leírtak szerint. De ha sok tulajdonságot szeretne hozzáadni, ez kényelmetlen lehet.

Alternatív megoldásként minden szükséges tulajdonságot tartalmazhat egy új objektumban. Ezzel az összes tulajdonságot egyszerre állítja be. Például:

Student.prototype = {
életkor: 19,
verseny: "fehér",
fogyatékosság: "Egyik sem"
}

Ne felejtse el beállítani a konstruktőr tulajdonságot, amikor prototípusokat állít be egy új objektumhoz.

Student.prototype = { 
konstruktőr: Diák,
életkor: 19,
verseny: "fehér",
fogyatékosság: "Egyik sem"
}

Ezzel a tulajdonsággal ellenőrizheti, hogy melyik konstruktor függvény hozott létre egy példányt.

Szupertípusok és öröklődés

Öröklés egy módszer, amelyet a programozók alkalmaznak az alkalmazásaikban előforduló hibák csökkentésére. Ez egy módja annak, hogy ragaszkodjunk a Ne ismételd magad (SZÁRAZ) elv.

Tegyük fel, hogy van két konstruktora…Diák és Tanár– amelyek két hasonló prototípus tulajdonsággal rendelkeznek.

Student.prototype = { 
konstruktőr: Diák,

monddName: funkció () {
Visszatérés`Az én nevem ${name}`;
}
}

Teacher.prototype = {
konstruktőr: Tanár,

monddName: funkció () {
Visszatérés`Az én nevem ${name}`;
}
}

Mindkét konstruktor határozza meg a mondd Name módszerrel, ugyanúgy. A szükségtelen párhuzamosságok elkerülése érdekében létrehozhat a szupertípus.

funkcióEgyéniRészletek(){};

IndividualDetails.prototype = {
konstruktőr: Egyéni részletek,

monddName: funkció () {
Visszatérés`Az én nevem ${name}`;
}
};

Ezután eltávolíthatja mondd Name mindkét kivitelezőtől.

A tulajdonságok szupertípustól való örökléséhez használja a Object.create(). Mindkét konstruktor prototípusát beállítja a szupertípus egy példányára. Ebben az esetben beállítjuk a Diák és Tanár prototípusokat az IndividualDetails egy példányához.

Itt van:

Diák.prototípus = Tárgy.create (IndividualDetails.prototype);
Tanár.prototípus = Tárgy.create (IndividualDetails.prototype);

Ezzel Diák és Tanár örökli a szupertípus összes tulajdonságát, EgyéniRészletek.

Így gyakorolhatod a DRY-t az OOP-ban szupertípusok segítségével.

A konstruktorok játékváltók

A konstruktorok a JavaScript kulcsfontosságú összetevői, és funkcióik elsajátítása kulcsfontosságú az OOP JavaScript alkalmazások fejlesztéséhez. Konstruktor segítségével olyan objektumokat hozhat létre, amelyek közös tulajdonságokkal és metódusokkal rendelkeznek. Az öröklődést objektumhierarchiák meghatározására is használhatja.

Az ES6-ban használhatja a osztály kulcsszó a klasszikus objektum-orientált osztályok meghatározásához. A JavaScript ezen verziója is támogatja a konstruktőr kulcsszó.