Sadržaj
Jedna od najvažnijih stvari koje nam pomažu u definiranju naše aplikacije je korištenje klasa, jer pomoću njih možemo definirati objekte modelirane iz stvarnog života i njihov prolaz u digitalni svijet postaje mnogo lakši.U CoffeeScript izgradnja klase i njezino stvaranje vrlo je jednostavno, zapravo je njezina sintaksa toliko minimalistička da nam je vrlo lako zapamtiti je, umjesto da definiramo klase izravno u JavaScript To je nešto malo nezgrapnije i moglo bi nam potrajati duže nego što smo očekivali.
ZahtjeviDa bismo dovršili ovaj vodič, moramo imati funkcionalnu instalaciju CoffeeScript, potrebna su nam i dopuštenja za pisanje datoteka i izvršavanje CoffeeScript na računalu na kojem radimo udžbenik. Potreban nam je uređivač teksta da bismo mogli napisati kôd koji ćemo izvesti tako da imamo nešto trajno, a ne sve u konzoli.
Klasa nije ništa drugo do naziv i neka svojstva koja definiraju njezino ponašanje, na temelju tog koncepta možemo definirati klasu CoffeeScript kako slijedi:
razred UčenikTo je sve što trebamo učiniti, na jednostavan način već smo izgradili svoju prvu klasu CoffeeScriptŠto se događa ako želimo uključiti svojstvo da bismo ga mogli koristiti, jer jednostavno napravimo instancu i dodamo to svojstvo, da vidimo:
student = novi Student () student.name = "Carolina"Pogledajmo sada kako na sljedećoj slici CoffeeScript transformirati sav naš kôd u JavaScript čisto pri sastavljanju, sjetimo se naredbe za ovo koja bi bila kava -c naziv datoteke.kava:
Jedna od stvari koja se najviše koristi u Objektno orijentirano programiranje je dodavanje metoda u klase, jer će nam, osim svojstava, dati ideju o tome što naš objekt može ili ne može učiniti, na primjer ako nastavimo s Studentski razred Za njega možemo stvoriti metodu u kojoj njezin objekt izražava poruku, da vidimo kako to postići:
razred Učenici govore: -> console.log "Hello World!"Ako tada stvorimo objekt iste klase, već bismo mogli koristiti ovu istu metodu. Na primjer:
student = novi Studentstudent.talk ()Time osiguravamo da se naša metoda može koristiti više puta, sve dok napravimo nekoliko instanci, što našem kodu daje jednu od karakteristika orijentacije objekta, a to je ponovna upotreba. Sada ćemo ponovno definirati naš kôd tako da prihvaća argumente, s ovim možemo učiniti mnogo više od jednostavnog ispisa po konzoli, da vidimo:
razred Razgovor učenika: (ime) -> console.log "Zdravo # {ime}!" student = novi Studentstudent.talk ("Carolina")Pogledajmo kako se sve ovo prevodi u kod JavaScript kada sastavljamo:
Za manipulaciju unutar imovine CoffeeScript samo moramo koristiti @ operater iza koje slijedi naziv svojstva za korištenje, koji se može kodirati na sljedeći način:
razred Student govori: () -> console.log “Zdravo # {@ name}!” student = novi učenik () student.name = “Carolina” student. govori ()Pogledajmo kako ovo izgleda kada se pokrene izravno u konzoli:
Postoje situacije u kojima nas definicija naše klase dovodi do stvaranja metoda koje se moraju pozivati unutar drugih, a ovo kako bismo postigli manje ponavljajuće i funkcionalnije programiranje, da vidimo kako to možemo učiniti pomoću sljedećeg koda napisanog u CoffeeScript.
razred Učenici govore: () -> console.log "Pozdrav, moje ime je: # {@ name}!" @knowAge () knowAge: () -> console.log "Moja dob je: # {@ age}" student = novi Student () student.name = "Vanessa" student.age = "23" student.talk ()Pogledajmo kako u konzoli možemo vidjeti rezultat izvršavanja prethodnog koda:
Najbolja stvar u slučajevima kada moramo raditi s mnogim objektima i mnogim svojstvima je biti u mogućnosti koristiti moć graditeljiPomoću njih možemo izravno oživjeti naš objekt bez potrebe za definiranjem različitih svojstava na "ručni" način. Za definiranje konstruktora upotrijebite strukturu sličnu sljedećoj:
razred Konstruktor učenika: (ime, dob) -> @ime = ime @starost = dob govore: () -> console.log "Zdravo moje ime je: # { @name}!" @saberEdad () saberEdad: () -> console.log "Moja dob je: # {@ age}"Ako pogledamo definiciju klase, konstruktor nije ništa drugo nego metoda, zanimljivo je to što kada se pozove graditelj već CoffeeScript zna da je to posebna metoda za našu klasu i da će je tretirati kao takvu, zato je prilikom stvaranja instanci naše klase ne moramo eksplicitno zvati. Pogledajmo primjer kako sada možemo definirati naše objekte:
student = novi student ("Carolina", "26") student.speaking ()Vidimo da nismo morali definirati vlasništvo Ime niti imanje dob, jednostavno prosljeđujemo vrijednosti konstruktoru redoslijedom kojim smo ih definirali u našoj klasi, a on obavlja ostatak posla umjesto nas. Naravno da je ovaj primjer vrlo pojednostavljen, ali zamislimo da moramo stvoriti stotine objekata s vrijednostima koje dolaze iz postojanog izvora poput baze podataka.
Pogledajmo na sljedećoj slici kako izgleda naš novi kod nakon što se prevede i prevede JavaScript čist:
Jedna od prednosti rada s objektno orijentiranim programiranjem je ta što možemo nasljedstvo klasa, to znači da možete stvoriti nove klase i preuzeti funkcionalnost klasa roditelji, ovim smanjujemo broj elemenata koje moramo stvoriti od nule, budući da pri nasljeđivanju uzimamo sve metode i svojstva nadređene klase, u podređenoj klasi ili novoj klasi moramo samo definirati metode i svojstva koja ekskluzivni su za njega.
Možda je za one koji su tek počeli programirati ovaj koncept pomalo zbunjujući ili složen, međutim gledajući sljedeći primjer zasigurno ćemo biti malo jasniji o tome što možemo postići.
razred Osoba koju treba znati Doba: () -> console.log "Moja dob je: # {@ age}" razred Učenik produžava Osobu za govor: () -> console.log "Zdravo # {@ name}!" student = novo Student () student.age = "30" student.name = "Jon" student.knowAge ()Analizirajući vidimo kako imamo klasu Osoba a ovaj ima metodu knowAge () s kojim ispisujemo putem konzole dob instance, pri stvaranju klase Student kažemo mu da nasljeđuje od Osoba pa implicitno naša nova klasa već ima metodu knowAge () čak i ako nije definirano u klasi.
Pogledajmo na sljedećoj slici kako izgleda naš novi kod nakon što se prevede i prevede JavaScript čist:
Ovime smo završili ovaj vodič, jer vidimo svijet nastave u CoffeeScript Nije tako složeno kako se činilo na prvi pogled, sve leži u poznavanju osnova i filozofije objektno orijentiranog programiranja. Ono što možemo uvjeriti je da je upotreba CoffeeScript kao jezik, čini složenost korištenja klasa u JavaScript znatno pasti jer je njegova sintaksa mnogo bliža jezicima poput Piton ili Rubin čine ga mnogo elegantnijim i manje zbunjujućim pri čitanju razvijenog koda.Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod