Utangulizi wa Madarasa na Vitu katika JavaScript
Sasa tutajishughulisha na kusoma OOP katika JavaScript. Hebu tuangalie mfano kutoka kwa maisha halisi, kisha tuubadilishe kwa JavaScript.
Kama mfano, tutachukua gari. Ina magurudumu, rangi, aina ya kiunzi, ujazo wa injini na kadhalika. Zaidi ya hayo, dereva anaweza kuipa amri: enda, simama, pinda kulia, kushoto na kadhalika.
Tunaweza kusema kwamba kuna darasa fulani la magari, lenye sifa za pamoja (yote yana magurudumu na yote yanaweza kupewa amri).
Gari maalum, linalosimama mitaani - ni mwakilishi wa darasa hili, au, kwa maneno mengine, kitu cha darasa hili. Vitu vyote vya darasa hili vina sifa: idadi ya magurudumu, rangi, aina ya kiunzi na mbinu: enda, simama, pinda kulia, kushoto.
Kwa maneno mengine darasa yenyewe - ni mchoro, ambao kufuatana nao kiwandani hutengenezwa magari. Kitu - ni gari lenyewe, lililofanywa kwa kufuata mchoro huo.
Katika JavaScript darasa huundwa kwa kutumia neno kuu
class, likifuatiwa na jina la
darasa hilo. Hebu tutengeneze darasa Car:
class Car {
// hapa kuna code, yaani mchoro wa JavaScript wa gari
}
Sasa tuelezee katika mchoro wetu, kwamba gari lolote lililoundwa kwa kufuata mchoro huu, litakuwa na sifa ya rangi na sifa ya kiwango cha mafuta.
Ili kufanya hivyo, ndani ya darasa tuandike sifa
color na sifa fuel:
class Car {
color; // rangi ya gari
fuel; // kiwango cha mafuta
}
Sasa tutengeneze mbinu za darasa letu.
Katika JavaScript, mbinu zinafanana na kazi za kawaida,
lakini huainishwa bila neno kuu function.
Kama tulivyoeleza hapo juu, gari letu linaweza kuenda, linaweza kupinda, linaweza kusimama. Tutengeneze mbinu zinazolingana katika darasa letu:
class Car {
color; // rangi ya gari
fuel; // kiwango cha mafuta
// Amri enda:
go() {
// baadhi ya code ya JavaScript
}
// Amri pinda:
turn() {
// baadhi ya code ya JavaScript
}
// Amri simama:
stop() {
// baadhi ya code ya JavaScript
}
}
Sisi na wewe tumetengeneza mchoro wa gari letu. Sasa inahitajika kwenda kiwandani na kutengeneza kitu cha darasa hili (yaani gari maalum).
Katika JavaScript hii inafanywa kwa kutumia neno kuu
new, baada ya likiandikwa jina la darasa:
new Car; // tunaamuru kiwanda kutengeneza gari
Hata hivyo, ikiwa tu utaunda kitu cha darasa - hii haileti lolote (ni sawa na, kwa mfano, kutangaza safu na kusiweka popote). Tunahitaji kutofautisha kwa kuhifadhi kitu hiki.
Licha hii kutofautisha iitwe myCar
- tuandike ndani yake kitu tulichounda:
let myCar = new Car;
Baada ya kuunda gari, inawezekana kurejelea sifa zake. Marejeo kwa sifa hufanyika kupitia nukta. Hebu tuinstalli sifa za kitu chetu:
let myCar = new Car; // tunaamuru kiwanda kutengeneza gari
myCar.color = 'red'; // tunapaka rangi nyekundu
myCar.fuel = 50; // tunajaza mafuta
Yote, gari letu limeundwa, limepakwa rangi na kujazwa mafuta. Sasa tunaweza kuipa amri kupitia mbinu za gari hili.
Marejeo kwa mbinu pia hufanyika kupitia nukta, lakini, tofauti na sifa, baada ya jina la mbinu inafuatwa kuandika mabano ya duara. Hebu tuamuru kitu chetu:
myCar.go();
myCar.turn();
myCar.stop();