JavaScript objektinio programavimo samprata, savybės, įvykiai, metodai
Objektinio programavimo samprata
Realiame pasaulyje su įvairiais objektais mes susiduriame nuolat – daugelis jų mums tokie įprasti, kad net nesusimąstome apie formalų jų apibūdinimą. Pavyzdžiui, namas, kuriame gyvename, automobilis, kuriuo važiuojame į darbą, gyvūnai, kuriuos matome zoologijos sode. Visi jie yra labai skirtingi: namas – statiškas objektas, automobilis – nuolat keičiantis savo būvimo vietą, gyvūnas – pats nuolat besikeičiantis. Netgi ir vienos grupės objektai labai nepanašūs: netgi iš vienos vados kačiukų nerasime dviejų identiškų, du namai, pastatyti pagal tą patį projektą, taip pat nebus visiškai vienodi. Iš kitos pusės, visiems objektams galima rasti ir kai ką bendro – jie gali būti panašūs savo išvaizda, savybėmis, sąveikos būdu su kitais objektais. Žinoma, visiškas formalizavimas netaikomas realiame gyvenime, tačiau labai praverčia modeliuojant realiai egzistuojančius objektus.
Javascript pamokos, funkcijos, operatoriai, karkasai kalbos pagrindas yra paprasčiausias objektinis modelis: yra objektai, kurie pasižymi kokiomis nors savybėmis, vaizduojamomis kintamųjų reikšmėmis, atliekantys kokius nors veiksmus (vadinamus metodais) ir aprašomais kokiomis nors funkcijomis ar procedūromis. Savybės ir metodai neegzistuoja atskirai vieni nuo kitų – jie jungiami į bendrus darinius. Metodai apgaubia objekto savybes, neleisdami tiesiogiai kreiptis į jas bei keisti jų reikšmių. Savybės laikomos paties objekto viduje (kartais dar sakoma, kad inkapsuliuojamos) – kintamuosiuose, kurie vadinami objekto laukais. Inkapsuliacija naudojama paslėpti vidinei objekto struktūrai nuo kitų objektų – juk, pavyzdžiui, nebūtina žinoti automobilio sandaros, kad galėtum važiuoti. Vartotojui pakanka kai kurių duomenų – minėtu automobilio atveju, vairuotojui pakanka žinoti automobilio valdymo priemones, galingumą, rekomenduojamus degalus ir pan. Taigi, svarbiausia žinoti, ką ir kurie metodai sprendžia, kurias objekto savybes leidžiama keisti, kokią informaciją galima sužinotiir t.t. Pakeitus objekto vidinę struktūrą, jo metodai savybės nesikeičia, taigi ir jokių papildomų problemų vartojantiems šį objektą nesukelia.
Schematiškai programavimo objektą galima pavaizduoti taip:
Kaip matome iš schemos – prie objekto savybių galime prieiti tik naudojantis objekto metodais: funkcijomis ir procedūromis. Tai leidžia apsaugoti objektą nuo atsitiktinio ar nekorektiško poveikio.
Viena svarbiausių objektų savybių – sąveika su kitais objektais. Sąveika realizuojama pranešimais kitiems objektams bei prašymais ką nors atlikti. Kiekvieną pranešimą sudaro trys elementai:
- objekto, kuriam adresuotas, vardas;
- metodo, kuris turi atlikti prašomus veiksmus, vardas;
- parametrai, reikalingi prašomiems veiksmams atlikti (atskiru atveju jų gali ir nebūti).
Sąveikos tarp objektų aprašas ir yra objektinio programavimo programa.
Šio žinių apie objektinį programavimą minimumo pakanka, norint rašyti programas JavaScript kalba (studijuojant objektinį programavimą, tektų susipažinti su daug dar kitų, čia nepaminėtų objektinio programavimo sąvokų).
Objekto savybės nurodomos labai paprastai – rašomas objekto vardas ir savybė, atskirti vienas nuo kito tašku:
Objekto_vardas.Objekto_savybė (parametrai)
Kaip ir kitose programavimo kalbose, Javascript pamokos, funkcijos, operatoriai, karkasai kalboje yra aibė standartinių objektų, kurių vartotojas gali naudoti savo programose neaprašinėdamas. Visus trūkstamus ar norint turėti modifikuotus standartinius objektus tenka sukurti patiems. Toliau trumpai supažindinsime su standartiniais objektais bei jų savybėmis, paaiškinsime, kaip patiems sukurti savus (ar modifikuoti esamus) objektus.
Autorius: Aidas Žandaris
Discussion