Klases izmantošana CoffeeScript

Satura rādītājs
Viena no vissvarīgākajām lietām, kas mums palīdz definēt mūsu lietojumprogrammu, ir nodarbību izmantošana, jo ar tām mēs varam definēt objektus, kas veidoti no reālās dzīves, un to pāreja uz digitālo pasauli kļūst daudz vieglāka.
In CoffeeScript klases izveide un tās parādīšana ir ļoti vienkārša, patiesībā tās sintakse ir tik minimālistiska, ka mums ir ļoti viegli to atcerēties, tā vietā definējot klases tieši JavaScript Tas ir kaut kas nedaudz apgrūtinošāks, un tas var aizņemt ilgāku laiku, nekā gaidīts.
PrasībasLai pabeigtu šo apmācību, mums ir jābūt funkcionālai instalācijai CoffeeScript, mums ir vajadzīgas arī atļaujas failu rakstīšanai un izpildei CoffeeScript datorā, kurā mēs veicam apmācību. Mums ir nepieciešams teksta redaktors, lai mēs varētu uzrakstīt kodu, ko mēs izpildīsim, lai mums būtu kaut kas noturīgs un ne viss konsolē.
Klase ir nekas vairāk kā nosaukums un dažas īpašības, kas nosaka tās uzvedību, pamatojoties uz šo jēdzienu, mēs varam definēt klasi CoffeeScript sekojoši:
 klases skolnieks
Tas ir viss, kas mums jādara, vienkāršā veidā mēs jau esam izveidojuši savu pirmo klasi CoffeeScriptKas notiek, ja mēs vēlamies iekļaut īpašumu, lai to varētu izmantot, jo mēs vienkārši izveidojam instanci un pievienojam šo īpašumu, apskatīsim:
 students = jauns students () students.name = "Carolina"
Tagad redzēsim, kā nākamajā attēlā CoffeeScript pārveidot visu mūsu kodu JavaScript apkopojot, atcerēsimies komandu, kas būtu kafija -c faila nosaukums.kafija:

Pēc tam mēs pamanām, kā sintakse JavaScript tīrs ir daudz plašāks un sarežģītāks nekā trīs koda rindas, kuras mēs veicām CoffeeScript, tas ir šīs valodas spēks, kas ļauj mums patiešām veltīt sevi mūsu lietojumprogrammai.
Viena no lietām, kas visbiežāk tiek izmantota Objektorientēta programmēšana ir pievienot klasēm metodes, jo tās papildus īpašībām sniegs priekšstatu par to, ko mūsu objekts var vai nevar darīt, piemēram, ja turpināsim Studentu klase Mēs varam tam izveidot metodi, kurā tās objekts izsaka ziņojumu, redzēsim, kā to sasniegt:
 klase Skolēns runā: -> console.log "Sveika pasaule!"
Ja mēs pēc tam izveidotu šīs pašas klases objektu, mēs jau varētu izmantot šo pašu metodi. Piemēram:
 students = new Studentstudent.talk ()
Tādējādi mēs pārliecināmies, ka mūsu metodi var izmantot daudzas reizes, ja vien veicam vairākus gadījumus, kas mūsu kodam piešķir vienu no objekta orientācijas īpašībām, kas ir atkārtoti izmantot. Tagad mēs no jauna definēsim savu kodu, lai tas pieņemtu argumentus, ar to mēs varam paveikt daudz vairāk nekā vienkārša drukāšana ar konsoli, redzēsim:
 klases studentu saruna: (vārds) -> console.log "Labdien, # {vārds}!" students = jauns Studentstudent.talk ("Karolīna")
Apskatīsim, kā tas viss izpaužas kodā JavaScript kad mēs apkopojam:

Kaut kas svarīgs, ko mēs varam darīt, veidojot no klasēm atvasinātus objektus, ir saglabāt to vērtību dzīves laikā mūsu lietojumprogrammā, ar to mēs varam izveidot komponentus, kas var piekļūt to īpašībām, izmantojot metodes, un tādējādi tos izmantot dažādās mūsu lietojumprogrammas daļās.
Lai manipulētu ar īpašumu CoffeeScript mums vienkārši jāizmanto @ operators kam seko izmantojamā īpašuma nosaukums, ko var kodēt šādi:
 klases skolēns runā: () -> console.log “Labdien # {@ name}!” students = jauns students () students.name = “Karolīna” students. runā ()
Apskatīsim, kā tas izskatās, palaižot tieši konsolē:

Kad tas ir izdarīts, redzēsim, kā izskatās mūsu apkopotais kods JavaScript tīrs:

Atšķirība koda daudzumā ir ievērojama, un tikai jādara kaut kas tik vienkāršs kā noteikt klasi ar metodi, pēc tam to parafēt un izsaukt izveidoto metodi.
Ir gadījumi, kad mūsu klases definīcija liek mums izveidot metodes, kas jāizsauc citos, lai panāktu mazāk atkārtotu un funkcionālāku programmēšanu, redzēsim, kā mēs to varam izdarīt, izmantojot šādu kodu, kas rakstīts CoffeeScript.
 klases skolēns runā: () -> console.log "Sveiki, mans vārds ir: # {@ name}!" @knowAge () knowAge: () -> console.log "Mans vecums ir: # {@ age}" students = jauns students () students.name = "Vanessa" student.age = “23” student.talk ()
Apskatīsim, kā konsolē mēs varam redzēt iepriekšējā koda izpildes rezultātu:

Līdz šim mēs esam definējuši objekta īpašības pēc tā inicializācijas, lai gan tā ir dzīvotspējīga prakse, kad mums ir jāizveido objekti ar daudzām īpašībām, ko var būt grūti uzturēt.
Labākais gadījumos, kad mums jāstrādā ar daudziem objektiem un daudzām īpašībām, ir iespēja izmantot spēku celtniekiAr tiem mēs varam dot dzīvību savam objektam tieši, nenosakot dažādas īpašības "manuāli". Lai definētu konstruktoru, izmantojiet struktūru, kas līdzīga šim:
 klase Studentu konstruktors: (vārds, vecums) -> @vārds = vārds @vecums = vecums runā: () -> console.log "Sveiki, mans vārds ir: # { @name}!" @saberEdad () saberEdad: () -> console.log "Mans vecums ir: # {@ age}"
Ja paskatāmies uz klases definīciju, konstruktors ir nekas vairāk kā metode, interesanti ir tas, ka tad, kad to sauc celtnieks jau CoffeeScript tā zina, ka tā ir īpaša metode mūsu klasei, un tā to uzskatīs par tādu, tāpēc, veidojot savas klases gadījumus, mums tas nav skaidri jāsauc. Apskatīsim piemēru, kā mēs tagad varam definēt savus objektus:
 students = jauns students ("Carolina", "26") students.speaking ()
Mēs redzam, ka mums nebija jādefinē īpašums Vārds ne īpašums vecums, mēs vienkārši nododam konstruktoram vērtības tādā secībā, kādā mēs tās definējam savā klasē, un tas veic pārējo darbu mūsu vietā. Protams, šis piemērs ir ļoti vienkāršots, bet iedomāsimies, ka mums ir jāsamontē simtiem objektu ar vērtībām, kas nāk no noturības avota, piemēram, datu bāzes.
Tālāk redzamajā attēlā redzēsim, kā izskatās mūsu jaunais kods, kad tas ir apkopots un tulkots JavaScript tīrs:

Šajā gadījumā mēs to redzam JavaScript neizmanto atslēgvārdu celtnieks veidojot mūsu definēto metodi CoffeeScript, šajā brīdī mēs sākam tiešāk redzēt atšķirību starp valodām, papildus tam, ko mēs atrisinājām aptuveni 12 vai 13 koda rindās, JavaScript kļūt par vairāk nekā 20 rindas, kas jāņem vērā, veidojot lielas lietojumprogrammas.
Viena no priekšrocībām, strādājot ar objektorientētu programmēšanu, ir tā, ka mēs to varam mantojums klasēm, tas nozīmē iespēju izveidot jaunas klases un pārņemt nodarbību funkcionalitāti vecāki, ar to mēs samazinām to elementu skaitu, kas mums jāizveido no nulles, jo, pārmantojot, mēs ņemam visas vecāku klases metodes un īpašības, bērnu klasē vai jaunajā klasē mums ir jānosaka tikai metodes un īpašības, kas ir tikai tam.
Varbūt tiem, kas ir jauni programmēšanā, šī koncepcija ir nedaudz mulsinoša vai sarežģīta, tomēr, aplūkojot šo piemēru, mēs noteikti būsim nedaudz skaidrāki par to, ko varam sasniegt.
 klase Persona, kas jāzina Vecums: () -> console.log "Mans vecums ir: # {@ age}" klases students pagarina runu: () -> console.log "Labdien, # {@ name}!" students = jauns Students () student.age = "30" student.name = "Jon" student.knowAge ()
Analizējot, mēs redzam, kā mums ir klase Persona un šim ir metode knowAge () ar kuru mēs, konsolei veidojot klasi, drukājam instances vecumu Students mēs viņam sakām, ka viņš manto no Persona tāpēc netieši mūsu jaunajai klasei jau ir šī metode knowAge () pat ja tas nav definēts klasē.
Tālāk redzamajā attēlā redzēsim, kā izskatās mūsu jaunais kods, kad tas ir apkopots un tulkots JavaScript tīrs:

Pēc tam mēs varam redzēt, ka mūsu kods JavaScript ir diezgan sarežģīts, lai definētu mantojumu, bet, lietojot CoffeeScript tā optimizācija ir ārkārtīgi augsta. Ja mēs redzam lietderību, iedomāsimies ļoti sarežģītas klases kā lietojumprogrammu komponentus, kas mūsu jaunajās klasēs var sniegt vairākas funkcijas, nerakstot vairāk par konkrēto kodu, kas mums patiešām vajadzīgs.
Ar to mēs esam pabeiguši šo apmācību, kā mēs redzam nodarbību pasauli CoffeeScript Tas nav tik sarežģīti, kā šķita no pirmā acu uzmetiena, viss slēpjas objektorientētas programmēšanas pamatprincipu un filozofijas pārzināšanā. Mēs varam apliecināt, ka izmantošana CoffeeScript kā valoda sarežģī nodarbību izmantošanu JavaScript ievērojami samazināsies, jo tās sintakse ir daudz tuvāka tādām valodām kā Python vai Rubīns tie padara to daudz elegantāku un mazāk mulsinošu, lasot izstrādāto kodu.Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu
wave wave wave wave wave