Osztályok a javascriptben
A tervező létrehozása lehetővé teszi, hogy átláthatóbb munkát végezzen nagyszámú azonos (monoton) objektummal.
Objektumok tulajdonságai és módszerei
Amikor az objektumok létrejöttek <> vagy Object () révén, akkor a tulajdonságok neveinek ellenőrzése bonyolult. 10 vagy 20 azonos objektum létrehozása (például áruházban vagy játékobjektumban), hibát okozhat a tulajdonság nevében, ami helytelen szkript művelethez vezethet. Ez a probléma konstruktőrökkel megoldható.
konstruktőrök
Általában (de nem feltétlenül!) A függvény-konstruktort nagybetűvel hívják. Mint érvek, az objektum adott példányának jövőbeli tulajdonságai elhaladnak. A tulajdonságok a kulcsszóhoz való hozzáféréssel vannak megadva.
A konstruktor létrehozása után az új operátor létrehozza az egyes objektumokat, és felhívja a konstruktor funkciót.
Minta szerkesztő leírása
- funkció kártya (innen)
- ez.from = a;
- ezt;
- >
- var card1 = új kártya ("Washington", "Beijing");
- var card2 = új kártya ("Beijing", "Moscow");
A példában a Kártya () konstruktor jön létre, két kártya1 és kártya2 deklarálásra kerülnek, és a mozgáspontok neveivel létrehozott objektumok jönnek létre. Most már elérheti a card2 objektum tulajdonságait és tulajdonságait. card2.to egyenlő lesz a "Moszkva".
A szabványos adattípusok is konstruktorokkal rendelkeznek: Object (), String (), Number () és mások.
A beépített konstruktorok prototípusaihoz óvatosan kell dolgozni, nem feltétlenül szükséges új tulajdonságokat adni, például tömbökhöz. Általában a tulajdonságok / módszerek hozzáadása egyedi konstrukciókkal történik.
Példa a Card konstruktor prototípusának kezelésére
- Card.prototype.price = 2e5;
- figyelmeztetés (card2.price);
A prototípuson keresztül módszereket rendelhet az objektum példányokhoz. Ez nagyon kényelmes, mert a metódus végrehajtó funkcióját nem tárolják minden objektumban, hanem a konstruktor prototípusában hívják.
öröklés
- funkció kártya (innen)
- ez.from = a;
- ezt;
- >
- Card.prototype.show = függvény ()
- ehhez (var p ebben)
- console.log (ez [p]);
- >
- funkció SuperCard (a kommentártól kezdve)
- ez.from = a;
- ezt;
- = ez;
- >
- SuperCard.prototype = új kártya ("Beijing", "Moscow");
- SuperCard.prototype.constructor = SuperCar;
- var scard = új SuperCard ("St. Petersburg", "Moszkva", "Platzcard, №23");
- scard.show ();
A 9. sor leírja azt a konstruktort, amely kiterjeszti a kártyát. A kiterjesztés úgy történik, hogy a kártya objektum példányát hozzárendeli a konstruktor prototípusához. Most, a show () metódusra hivatkozva a scard objektumból, a szülő show () metódust hívjuk.
Standard típusok kiterjesztése
A prototípus segítségével új tulajdonságokat vagy módszereket adhat hozzá a standard típusok összes objektumához. A szabványos konstruktorok ötletének kiterjesztése nem mindig jó - a konstruktor minden tárgya új tulajdonságokat szerez.
Az operátor példánya
Annak ellenőrzéséhez, hogy egy objektumot létrehozott-e egy adott konstruktornál, használja az instanceof operátort
Ellenőrzési példa
- riasztás (Scard instanceof SuperCard);
- figyelmeztetés (Scard instanceof Card);