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:

javascriptclass 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:

javascriptclass 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:

javascriptclass 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:

javascriptnew 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:

javascriptlet myCar = new Car;

Baada ya kuunda gari, inawezekana kurejelea sifa zake. Marejeo kwa sifa hufanyika kupitia nukta. Hebu tuinstalli sifa za kitu chetu:

javascriptlet 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:

javascriptmyCar.go();
myCar.turn();
myCar.stop();