Cuprins
Unul dintre cele mai importante lucruri care ne ajută să ne definim aplicația este utilizarea claselor, deoarece cu ele putem defini obiecte modelate din viața reală și trecerea lor în lumea digitală devine mult mai ușoară.În CoffeeScript construirea unei clase și instanțierea acesteia este foarte simplă, de fapt sintaxa sa este atât de minimalistă încât ne este foarte ușor să o amintim, făcând în schimb o definiție a claselor direct în JavaScript Este ceva puțin mai greoi și ne poate dura mai mult decât ne așteptam.
CerințePentru a finaliza acest tutorial trebuie să avem o instalare funcțională de CoffeeScript, avem nevoie și de permisiuni pentru a scrie fișiere și a le executa CoffeeScript pe computerul pe care facem tutorialul. Avem nevoie de un editor de text pentru a putea scrie codul pe care urmează să îl realizăm, astfel încât să avem ceva persistent și nu totul în consolă.
O clasă nu este altceva decât un nume și unele proprietăți care definesc comportamentul acesteia, pe baza conceptului în care putem defini o clasă CoffeeScript după cum urmează:
clasa StudentAsta este tot ce trebuie să facem, într-un mod simplu, am construit deja prima noastră clasă CoffeeScriptCe se întâmplă acum dacă vrem să includem o proprietate pentru a o putea folosi, pentru că facem o instanță și adăugăm acea proprietate, să vedem:
student = student nou () student.name = "Carolina"Acum să vedem cum în imaginea următoare ca CoffeeScript transformă tot codul nostru în JavaScript pur atunci când compilați, să ne amintim de comanda pentru aceasta care ar fi cafea -c fișier.cafe:
Observăm apoi modul în care sintaxa lui JavaScript pure este mult mai extins și mai complex decât cele trei linii de cod pe care le-am făcut CoffeeScript, aceasta este puterea acestui limbaj care ne permite să ne dedicăm cu adevărat aplicației noastre.
Unul dintre lucrurile care sunt cele mai utilizate în Programare orientată pe obiecte este de a adăuga metode la clase, deoarece acestea, pe lângă proprietăți, ne vor oferi o idee despre ceea ce poate sau nu poate face obiectul nostru, de exemplu dacă continuăm cu Clasa elevilor Putem crea o metodă în care obiectul său exprimă un mesaj, să vedem cum să-l realizăm:
clasa Student vorbește: -> console.log "Hello World!"Dacă creăm un obiect din aceeași clasă, am putea folosi deja aceeași metodă. De exemplu:
student = new Studentstudent.talk ()Cu aceasta ne asigurăm că metoda noastră poate fi utilizată de mai multe ori, atâta timp cât facem mai multe instanțe, ceea ce conferă codului nostru una dintre caracteristicile orientării obiectului, care este reutilizare. Acum vom redefini codul nostru, astfel încât acesta să accepte argumente, cu aceasta putem face mult mai mult decât o simplă imprimare prin consolă, să vedem:
clasă Discuție cu elevii: (nume) -> console.log „Bună ziua # {nume}!” student = new Studentstudent.talk („Carolina”)Să vedem cum toate acestea se traduc în cod JavaScript când compilăm:
Ceva important pe care îl putem face atunci când construim obiecte derivate din clase este să ne menținem valoarea pe parcursul vieții lor în aplicația noastră, cu aceasta putem realiza componente care își pot accesa proprietățile prin metode și astfel le putem folosi în diferite părți ale aplicației noastre.
Pentru a manipula o proprietate din interior CoffeeScript trebuie doar să folosim @ operator urmat de numele proprietății de utilizat, care poate fi codată după cum urmează:
clasa Student speak: () -> console.log „Hello # {@ name}!” student = new Student () student.name = student „Carolina”. speak ()Să vedem cum arată acest lucru când rulăm direct în consolă:
Odată ce ați terminat, să vedem cum arată codul nostru compilat JavaScript pur:
Diferența în cantitatea de cod este remarcabilă și numai pentru a face ceva la fel de simplu ca definirea unei clase cu o metodă, apoi instanțiați-o și apelați metoda creată.
Există ocazii în care definiția clasei noastre ne conduce la crearea de metode care trebuie apelate în cadrul altora, asta pentru a realiza o programare mai puțin repetitivă și mai funcțională, să vedem cum o putem face folosind următorul cod scris în CoffeeScript.
clasa Student vorbește: () -> console.log "Bună ziua, numele meu este: # {@ name}!" @knowAge () knowAge: () -> console.log "Vârsta mea este: # {@ age}" student = new Student () student.name = "Vanessa" student.age = „23” student.talk ()Să vedem cum în consolă putem vedea rezultatul executării codului anterior:
Până acum am definit proprietățile obiectului după ce l-am inițializat, deși este o practică viabilă, când trebuie să creăm obiecte cu multe proprietăți, acest lucru poate fi dificil de întreținut.
Cel mai bun lucru în cazurile în care trebuie să lucrăm cu multe obiecte și multe proprietăți este să putem folosi puterea constructoriCu ele putem da viață obiectului nostru direct fără a fi nevoie să definim diferitele proprietăți într-un mod „manual”. Pentru a defini un constructor, utilizați o structură similară cu următoarea:
clasă Constructor elev: (nume, vârstă) -> @nume = nume @ vârstă = vârstă vorbește: () -> console.log "Bună ziua, numele meu este: # {@ nume}!" @saberEdad () saberEdad: () -> console.log "Vârsta mea este: # {@ age}"Dacă ne uităm la definiția clasei, constructorul nu este altceva decât o metodă, interesant este că atunci când este numită constructor deja CoffeeScript știe că este o metodă specială pentru clasa noastră și o va trata ca atare, de aceea, atunci când vom crea instanțele clasei noastre, nu trebuie să o numim în mod explicit. Să vedem un exemplu despre cum ne putem defini acum obiectele:
student = student nou („Carolina”, „26”) student.speaking ()Vedem că nu a trebuit să definim proprietatea Nume nici proprietatea vârstă, pur și simplu transmitem valorile către constructor în ordinea în care le definim în clasa noastră și face restul lucrului pentru noi. Desigur, acest exemplu este foarte simplist, dar să ne imaginăm că trebuie să instanțiem sute de obiecte cu valori care provin dintr-o sursă de persistență, cum ar fi o bază de date.
Să vedem în imaginea următoare cum arată noul nostru cod odată ce a fost compilat și tradus JavaScript pur:
În acest caz vedem că JavaScript nu folosește cuvântul cheie constructor atunci când construim metoda pe care o definim în CoffeeScript, în acest moment începem să vedem într-un mod mai direct diferența dintre limbi, în plus față de ceea ce am rezolvat în aproximativ 12 sau 13 linii de cod, în JavaScript deveni mai mult decât 20 de linii, ceva de luat în calcul atunci când realizăm aplicații mari.
Unul dintre avantajele lucrului cu programarea orientată pe obiecte este că putem face moştenire de clase, aceasta înseamnă a putea crea clase noi și a lua funcționalitatea claselor părinţi, cu aceasta reducem numărul de elemente pe care trebuie să le creăm de la zero, deoarece atunci când moștenim luăm toate metodele și proprietățile clasei părinte, în clasa copil sau noua clasă trebuie doar să definim metodele și proprietățile care sunt exclusive pentru acesta.
Poate că pentru cei care încep să programeze acest concept este un pic confuz sau complex, totuși, uitându-ne la următorul exemplu, cu siguranță vom fi puțin mai clari cu privire la ceea ce putem realiza.
clasă Persoană de știut Vârstă: () -> console.log „Vârsta mea este: # {@ age}” clasă Studentul extinde persoana să vorbească: () -> console.log „Bună ziua # {@ nume}!” student = new Student () student.age = "30" student.name = "Jon" student.knowAge ()Analizând vedem cum avem o clasă Persoană iar aceasta are o metodă knowAge () cu care imprimăm prin consolă vârsta instanței, la crearea clasei Student îi spunem că moștenește din Persoană deci implicit noua noastră clasă are deja metoda knowAge () chiar dacă nu este definit în clasă.
Să vedem în imaginea următoare cum arată noul nostru cod odată ce a fost compilat și tradus JavaScript pur:
Putem vedea apoi codul nostru JavaScript este destul de complex pentru definirea moștenirii, dar atunci când se utilizează CoffeeScript optimizarea sa este extrem de mare. Dacă vedem utilitatea, să ne imaginăm clase foarte complexe ca componente ale aplicației care ne pot oferi mai multe funcționalități în noile noastre clase, fără a fi nevoie să scriem mai mult decât codul specific de care avem nevoie cu adevărat.
Cu aceasta am terminat acest tutorial, pe măsură ce vedem lumea claselor în CoffeeScript Nu este atât de complex pe cât părea la prima vedere, totul constă în cunoașterea fundamentelor și filozofiei programării orientate pe obiecte. Ce putem asigura este că utilizarea CoffeeScript ca limbă, face complexitatea utilizării orelor în JavaScript scade considerabil, deoarece sintaxa sa este mult mai apropiată de limbi precum Piton sau Rubin îl fac mult mai elegant și mai puțin confuz atunci când citiți codul dezvoltat.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv