Bruke klasser i CoffeeScript

Innholdsfortegnelse
En av de viktigste tingene som hjelper oss med å definere applikasjonen vår, er bruk av klasser, siden vi med dem kan definere objekter som er modellert fra det virkelige liv og deres overgang til den digitale verden blir mye lettere.
I CoffeeScript å bygge en klasse og sette den i gang er veldig enkel, faktisk er syntaksen så minimalistisk at det er veldig lett for oss å huske den, i stedet for å definere klasser direkte i JavaScript Det er noe litt mer tungvint, og som kan ta oss lengre tid enn forventet.
KravFor å fullføre denne opplæringen må vi ha en funksjonell installasjon av CoffeeScript, vi trenger også tillatelser til å skrive filer og utføre CoffeeScript på datamaskinen der vi gjør opplæringen. Vi trenger en tekstredigerer for å kunne skrive koden som vi skal utføre, slik at vi har noe vedvarende og ikke alt i konsollen.
En klasse er ikke annet enn et navn og noen egenskaper som definerer dens oppførsel, basert på det konseptet vi kan definere en klasse i CoffeeScript som følger:
 klasse Student
Det er alt vi trenger å gjøre, på en enkel måte har vi allerede bygget vår første klasse inn CoffeeScriptHva skjer nå hvis vi vil inkludere en eiendom for å kunne bruke den, fordi vi bare lager en forekomst og legger til den egenskapen, la oss se:
 student = ny Student () student.name = "Carolina"
La oss nå se hvordan i det følgende bildet som CoffeeScript forvandle all vår kode til JavaScript ren når du kompilerer, la oss huske kommandoen for dette som ville være kaffe -c filnavn. kaffe:

Vi legger deretter merke til hvordan syntaksen til JavaScript ren er mye mer omfattende og kompleks enn de tre kodelinjene vi gjorde i CoffeeScript, dette er kraften i dette språket som lar oss virkelig dedikere oss til applikasjonen vår.
En av de tingene som er mest brukt i Objektorientert programmering er å legge til metoder for klasser, siden disse, i tillegg til egenskapene, vil gi oss en ide om hva objektet vårt kan eller ikke kan gjøre, for eksempel hvis vi fortsetter med Studentklasse Vi kan lage en metode for det der objektet uttrykker et budskap, la oss se hvordan vi oppnår det:
 klasse Student tale: -> console.log "Hei verden!"
Hvis vi deretter lager et objekt av samme klasse, kan vi allerede bruke den samme metoden. For eksempel:
 student = ny Studentstudent.talk ()
Med dette sørger vi for at metoden vår kan brukes mange ganger, så lenge vi gjør flere forekomster, noe som gir koden vår en av egenskapene til objektorientering, som er gjenbruk. Nå skal vi definere koden vår på nytt slik at den godtar argumenter, med dette kan vi gjøre mye mer enn en enkel utskrift etter konsoll, la oss se:
 klasse Studentprat: (navn) -> console.log "Hei # {navn}!" student = ny Studentstudent.talk ("Carolina")
La oss se hvordan alt dette oversettes til kode JavaScript når vi kompilerer:

Noe viktig som vi kan gjøre når vi konstruerer objekter avledet fra klasser, er å opprettholde verdien i løpet av livet i applikasjonen vår, med dette kan vi lage komponenter som kan få tilgang til egenskapene deres gjennom metoder og dermed bruke dem i forskjellige deler av applikasjonen vår.
For å manipulere en eiendom i CoffeeScript vi må bare bruke @ operatør etterfulgt av navnet på eiendommen som skal brukes, som kan kodes som følger:
 klasse Student tale: () -> console.log “Hei # {@ name}!” student = ny Student () student.name = “Carolina” student. speak ()
La oss se hvordan dette ser ut når det kjøres direkte i konsollen:

Når dette er gjort, la oss se hvordan vår kompilerte kode ser ut JavaScript ren:

Forskjellen i kodemengde er bemerkelsesverdig og bare for å gjøre noe så enkelt som å definere en klasse med en metode, deretter instansere den og kalle den opprettede metoden.
Det er noen ganger at definisjonen av klassen vår fører oss til å lage metoder som må kalles i andre, dette for å oppnå en mindre repeterende og mer funksjonell programmering, la oss se hvordan vi kan gjøre det ved å bruke følgende kode skrevet i CoffeeScript.
 klasse Student tale: () -> console.log "Hei jeg heter: # {@ name}!" @knowAge () knowAge: () -> console.log "Min alder er: # {@ age}" student = ny Student () student.name = "Vanessa" student.age = “23” student.talk ()
La oss se hvordan vi i konsollen kan se resultatet av utførelsen av den forrige koden:

Så langt har vi definert egenskapene til objektet etter å ha initialisert det, selv om det er en levedyktig praksis, når vi må lage objekter med mange egenskaper, kan dette være vanskelig å vedlikeholde.
Det beste i tilfeller der vi må jobbe med mange objekter og mange egenskaper er å kunne bruke kraften til byggherrerMed dem kan vi gi liv til objektet vårt direkte uten å måtte definere de forskjellige egenskapene på en "manuell" måte. For å definere en konstruktør, bruk en struktur som ligner på følgende:
 klasse Studentkonstruktør: (navn, alder) -> @navn = navn @alder = alder snakk: () -> console.log "Hei jeg heter: # { @navn}!" @saberEdad () saberEdad: () -> console.log "Min alder er: # {@ age}"
Hvis vi ser på definisjonen av klassen, er konstruktøren ikke annet enn en metode, det interessante er at når den kalles bygger allerede CoffeeScript den vet at det er en spesiell metode for klassen vår, og den vil behandle den som sådan, det er derfor vi ikke trenger å kalle det eksplisitt når vi skal lage forekomster av klassen vår. La oss se et eksempel på hvordan vi nå kan definere objektene våre:
 student = ny Student ("Carolina", "26") student.speaking ()
Vi ser at vi ikke behøvde å definere eiendommen Navn ei heller eiendommen alder, vi overfører ganske enkelt verdiene til konstruktøren i den rekkefølgen vi definerer dem i klassen vår, og det gjør resten av arbeidet for oss. Selvfølgelig er dette eksemplet veldig forenklet, men la oss forestille oss at vi må instantiere hundrevis av objekter med verdier som kommer fra en utholdenhetskilde som en database.
La oss se på bildet nedenfor hvordan vår nye kode ser ut når den er kompilert og oversatt til JavaScript ren:

I dette tilfellet ser vi det JavaScript bruker ikke søkeordet bygger når vi konstruerer metoden vi definerer i CoffeeScript, på dette tidspunktet begynner vi å se på en mer direkte måte forskjellen mellom språkene, i tillegg til det vi løste på omtrent 12 eller 13 linjer med kode, i JavaScript bli mer enn 20 linjer, noe å ta hensyn til når vi lager store applikasjoner.
En av fordelene med å jobbe med objektorientert programmering er at vi kan gjøre det arv av klasser betyr dette at du kan lage nye klasser og ta funksjonaliteten til klasser foreldre, med dette reduserer vi antall elementer vi må lage fra bunnen av, siden når vi arver tar vi alle metodene og egenskapene til foreldreklassen, i barneklassen eller den nye klassen trenger vi bare å definere metodene og egenskapene som er eksklusive for det.
Kanskje for de som er nye i programmeringen, er dette konseptet litt forvirrende eller komplekst, men ved å se på eksemplet nedenfor vil vi sikkert være litt tydeligere på hva vi kan oppnå.
 klasse Person å kjenne Alder: () -> console.log "Min alder er: # {@ age}" klasse Student utvider Person til å snakke: () -> console.log "Hei # {@ name}!" student = ny Student () student.age = "30" student.name = "Jon" student.knowAge ()
Når vi analyserer, ser vi hvordan vi har en klasse Person og denne har en metode knowAge () som vi skriver ut etter konsoll alderen på forekomsten, når vi lager klassen Student vi forteller ham at han arver fra Person så implisitt har vår nye klasse allerede metoden knowAge () selv om det ikke er definert i klassen.
La oss se på bildet nedenfor hvordan vår nye kode ser ut når den er kompilert og oversatt til JavaScript ren:

Vi kan da se at koden vår JavaScript er ganske komplisert for å definere arv, men når du bruker CoffeeScript optimeringen er ekstremt høy. Hvis vi ser verktøyet, la oss forestille oss svært komplekse klasser som applikasjonskomponenter som kan gi oss flere funksjoner i våre nye klasser, uten å måtte skrive mer enn den spesifikke koden som vi virkelig trenger.
Med dette har vi fullført denne opplæringen, slik vi ser klassenes verden i CoffeeScript Det er ikke så komplekst som det virket ved første øyekast, det hele ligger i å kjenne det grunnleggende og filosofiske i objektorientert programmering. Det vi kan forsikre er at bruken av CoffeeScript som et språk, gjør kompleksiteten ved å bruke klasser i JavaScript faller betydelig siden syntaksen er mye nærmere språk som Python eller Rubin de gjør det mye mer elegant og mindre forvirrende når du leser den utviklede koden.Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave