Prezantimi në Klasat dhe Objektet në JavaScript
Tani do të fillojmë të studiojmë OOP në JavaScript. Le të shqyrtojmë një shembull nga jeta, e pastaj ta transferojmë atë në JavaScript.
Si shembull, le të marrim një makinë. Ajo ka rrota, ngjyrë, lloj karrocerie, vëllim motori e kështu me radhë. Përveç kësaj, shoferi mund t'i japë komanda: të ecë, të ndalojë, të kthehet djathtas, majtas etj.
Mund të themi se ekziston një klasë e makinave, që posedon veti të përgjithshme (të gjitha kanë rrota dhe të gjitave u mund t'u jepen komanda).
Makina specifike, që qëndron në rrugë - është një përfaqësues i kësaj klase, ose, me fjalë të tjera, një objekt i kësaj klase. Të gjithë objektet e kësaj klase kanë veti: numri i rrotave, ngjyra, lloji i karrocerisë dhe metoda: të ecë, të ndalojë, të kthehet djathtas, majtas.
Me fjalë të tjera, vetë klasa - është vizatimi, sipas të cilit në fabrikë bëhen makinat. Objekti është vetë makina, e bërë sipas këtyre vizatimeve.
Në JavaScript, një klasë krijohet me fjalën kyçe
class, e ndjekur nga emri
i asaj klase. Le të krijojmë klasën Car:
class Car {
// këtu kodi, pra vizatimi JavaScript i makinës
}
Të përcaktojmë tani në vizatimin tonë, se çdo makinë, e krijuar sipas këtij vizatimi, do të ketë vetinë për ngjyrën dhe vetinë për sasinë e karburantit.
Për këtë, brenda klasës shkruajmë vetinë
color dhe vetin fuel:
class Car {
color; // ngjyra e makinës
fuel; // sasia e karburantit
}
Të krijojmë tani metodat e klasës sonë.
Në JavaScript metodat janë të ngjashme me funksionet e zakonshme,
vetëm se deklarohen pa fjalën kyçe function.
Siç u përmend më lart, makina jonë mund të ecë, mund të kthehet, mund të ndalojë. Le të krijojmë metodat përkatëse në klasën tonë:
class Car {
color; // ngjyra e makinës
fuel; // sasia e karburantit
// Komanda të ecë:
go() {
// ndonjë kod JavaScript
}
// Komanda të kthehet:
turn() {
// ndonjë kod JavaScript
}
// Komanda të ndalojë:
stop() {
// ndonjë kod JavaScript
}
}
Ne kemi bërë vizatimin e makinës sonë. Tani duhet të shkojmë në fabrikë dhe të bëjmë objektin e kësaj klase (pra një makinë specifike).
Në JavaScript kjo bëhet me fjalën kyçe
new, pas së cilës shkruhet emri i klasës:
new Car; // i urdhërojmë fabrikës të bëjë një makinë
Megjithatë, nëse thjesht krijohet një objekt i klasës - kjo nuk çon në asgjë (kjo është njësoj, sic, për shembull, të deklarosh një array dhe të mos e shkruash askund). Na duhet një variabël për ruajtjen e këtij objekti.
Le të quhet kjo variabël myCar
- le të shkruajmë në të objektin e krijuar nga ne:
let myCar = new Car;
Pas krijimit të makinës mund t'i drejtohemi vetive të saj. Drejtimi tek ato ndodh përmes pikës. Le të vendosim vetitë e objektit tonë:
let myCar = new Car; // i urdhërojmë fabrikës të bëjë një makinë
myCar.color = 'red'; // e lyjmë me ngjyrë të kuqe
myCar.fuel = 50; // e furnizojmë me karburant
Kaq, makina jonë është krijuar, e lyer dhe e furnizuar me karburant. Tani mund t'i japim komanda përmes metodave të kësaj makine.
Drejtimi tek metodat gjithashtu ndodh përmes pikës, por, ndryshe nga vetia, pas emrit të metodës vijon të shkruhen kllapat e rrumbullakëta. Le t'i japim komanda objektit tonë:
myCar.go();
myCar.turn();
myCar.stop();