„CoffeeScript“ klasių naudojimas

Turinys
Vienas iš svarbiausių dalykų, padedančių mums apibrėžti savo taikomąją programą, yra klasių naudojimas, nes jomis galime apibrėžti objektus, modeliuotus iš realaus gyvenimo, o jų patekimas į skaitmeninį pasaulį tampa daug lengvesnis.
In CoffeeScript sukurti klasę ir ją parodyti yra labai paprasta, iš tikrųjų jos sintaksė yra tokia minimalistinė, kad mums labai lengva ją prisiminti, o ne klasių apibrėžimą tiesiogiai „JavaScript“ Tai yra šiek tiek sudėtingiau ir gali užtrukti ilgiau nei tikėtasi.
ReikalavimaiNorėdami užbaigti šią pamoką, turime turėti funkcinį diegimą CoffeeScript, mums taip pat reikia leidimų rašyti failus ir vykdyti CoffeeScript kompiuteryje, kuriame darome pamoką. Mums reikia teksto redaktoriaus, kad galėtume parašyti kodą, kurį ketiname atlikti, kad konsolėje būtų kažkas patvarus, o ne viskas.
Klasė yra ne kas kita, kaip pavadinimas ir kai kurios savybės, apibrėžiančios jos elgesį, remiantis šia sąvoka galime apibrėžti klasę CoffeeScript taip:
 klasės mokinys
Tai viskas, ką turime padaryti, paprastu būdu jau pastatėme savo pirmąją klasę CoffeeScriptKas atsitiks, jei norime įtraukti nuosavybę, kad galėtume ją naudoti, nes paprasčiausiai sukuriame egzempliorių ir pridedame tą nuosavybę, pažiūrėkime:
 studentas = naujas studentas () student.name = "Carolina"
Dabar pažiūrėkime, kaip toliau pateiktame paveikslėlyje CoffeeScript paversti visą mūsų kodą į „JavaScript“ kompiliuojant, prisiminkime komandą, kuri būtų kava -c failo pavadinimas.kava:

Tada pastebime, kaip sintaksė „JavaScript“ grynas yra daug platesnis ir sudėtingesnis nei trys kodo eilutės, kurias padarėme CoffeeScript, tai yra šios kalbos galia, leidžianti mums tikrai atsidėti savo programai.
Vienas iš labiausiai naudojamų dalykų Objektinis programavimas yra pridėti metodus prie klasių, nes jie, be savybių, suteiks mums supratimą apie tai, ką mūsų objektas gali ar negali padaryti, pavyzdžiui, jei tęsime Studentų klasė Mes galime sukurti metodą, kuriuo jo objektas išreiškia pranešimą, pažiūrėkime, kaip tai pasiekti:
 klasės mokiniai kalba: -> console.log "Labas pasaulis!"
Jei tada sukurtume tos pačios klasės objektą, jau galėtume naudoti tą patį metodą. Pavyzdžiui:
 studentas = naujas Studentstudent.talk ()
Tokiu būdu mes užtikriname, kad mūsų metodą galima naudoti daug kartų, jei darome kelis egzempliorius, o tai suteikia mūsų kodui vieną iš objekto orientacijos savybių, pakartotinai naudoti. Dabar mes iš naujo nustatysime savo kodą, kad jis priimtų argumentus, ir tai galime padaryti daug daugiau nei paprastas spausdinimas konsolėje, pažiūrėkime:
 klasės mokinių pokalbis: (vardas) -> console.log „Labas # {vardas}!“ studentas = naujas Studentstudent.talk („Karolina“)
Pažiūrėkime, kaip visa tai virsta kodu „JavaScript“ kai sudarome:

Svarbus dalykas, kurį galime padaryti kurdami iš klasių gautus objektus, yra išlaikyti jų vertę per visą jų naudojimo laiką mūsų programoje, todėl galime sukurti komponentus, kurie gali pasiekti jų savybes taikydami metodus ir taip juos naudoti skirtingose ​​mūsų programos dalyse.
Norėdami manipuliuoti viduje esančia nuosavybe CoffeeScript mes tiesiog turime naudoti @ operatorius po to nurodomas naudojamos nuosavybės pavadinimas, kuris gali būti užkoduotas taip:
 klasės mokinys kalba: () -> console.log „Labas # {@ name}!“ studentas = naujas studentas () student.name = „Carolina“ studentas. kalbėti ()
Pažiūrėkime, kaip tai atrodo paleidus tiesiogiai konsolėje:

Kai tai bus padaryta, pažiūrėkime, kaip atrodo mūsų sudarytas kodas „JavaScript“ grynas:

Skirtumas tarp kodo kiekio yra puikus ir tik padaryti ką nors tokio paprasto, kaip apibrėžti klasę metodu, tada jį paragauti ir iškviesti sukurtą metodą.
Yra atvejų, kai mūsų klasės apibrėžimas verčia mus kurti metodus, kurie turi būti vadinami kituose, kad pasiektume mažiau pasikartojantį ir funkcionalesnį programavimą, pažiūrėkime, kaip tai galime padaryti naudodami šį kodą, parašytą CoffeeScript.
 klasės mokinys kalba: () -> console.log "Sveiki, mano vardas: # {@ name}!" @knowAge () knowAge: () -> console.log "Mano amžius: # {@ age}" studentas = naujas studentas () student.name = "Vanessa" student.age = "23" student.talk ()
Pažiūrėkime, kaip konsolėje galime pamatyti ankstesnio kodo vykdymo rezultatą:

Iki šiol mes nustatėme objekto savybes po to, kai jį inicijavome, nors tai yra perspektyvi praktika, kai turime sukurti objektus, turinčius daug savybių, kurias gali būti sunku išlaikyti.
Geriausias dalykas tais atvejais, kai turime dirbti su daugybe objektų ir daugybe savybių, yra sugebėjimas naudotis statybininkaiSu jais mes galime tiesiogiai suteikti gyvybę savo objektui, nereikalaudami „rankiniu būdu“ apibrėžti skirtingų savybių. Norėdami apibrėžti konstruktorių, naudokite struktūrą, panašią į šią:
 klasė Studentas konstruktorius: (vardas, amžius) -> @vardas = vardas @amžius = amžius kalba: () -> console.log "Sveiki, mano vardas: # { @name}!" @saberEdad () saberEdad: () -> console.log "Mano amžius: # {@ age}"
Jei pažvelgsime į klasės apibrėžimą, konstruktorius yra ne kas kita, kaip metodas, įdomu tai, kad kai jis vadinamas statybininkas jau CoffeeScript ji žino, kad tai yra ypatingas metodas mūsų klasei ir jis tai traktuos, todėl, kai ketiname kurti savo klasės egzempliorius, neturime to aiškiai pavadinti. Pažiūrėkime pavyzdį, kaip dabar galime apibrėžti savo objektus:
 studentas = naujas studentas („Carolina“, „26“) studentas.kalba ()
Matome, kad neturėjome apibrėžti nuosavybės vardas nei turto amžiaus, mes tiesiog perduodame vertes konstruktoriui tokia tvarka, kokia mes jas apibrėžiame savo klasėje, o visa kita ji atlieka už mus. Žinoma, šis pavyzdys yra labai supaprastintas, tačiau įsivaizduokime, kad šimtus objektų turime parodyti vertėmis, kurios gaunamos iš patvarumo šaltinio, pavyzdžiui, duomenų bazės.
Toliau esančiame paveikslėlyje pažiūrėkime, kaip atrodo mūsų naujasis kodas, kai jis yra sukompiliuotas ir išverstas „JavaScript“ grynas:

Šiuo atveju mes tai matome „JavaScript“ nenaudoja raktažodžio statybininkas kuriant metodą, kurį mes apibrėžiame CoffeeScript, šiuo metu mes pradedame aiškiau matyti skirtumą tarp kalbų, be to, ką išsprendėme maždaug 12 ar 13 kodo eilučių, „JavaScript“ tapti daugiau nei 20 eilučių, į ką reikia atsižvelgti rengiant dideles programas.
Vienas iš darbo su objektiniu programavimu privalumų yra tai, kad mes galime tai padaryti paveldėjimas klasių, tai reiškia galimybę kurti naujas klases ir naudotis klasių funkcionalumu tėvai, tokiu būdu sumažiname elementų, kuriuos turime sukurti nuo pat pradžių, skaičių, nes paveldėdami mes imamės visų tėvų klasės metodų ir savybių, antrinėje klasėje ar naujoje klasėje turime apibrėžti tik tuos metodus ir savybes, yra išskirtiniai.
Galbūt pradedantiesiems programuoti ši koncepcija yra šiek tiek paini ar sudėtinga, tačiau, žiūrėdami į šį pavyzdį, mes tikrai būsime šiek tiek aiškesni, ką galime pasiekti.
 klasė Asmuo, kurį reikia žinoti Amžius: () -> console.log "Mano amžius: # {@ age}" klasės mokinys pratęsia asmenį kalbėti: () -> console.log "Labas # {@ name}!" studentas = naujas Studentas () student.age = "30" student.name = "Jon" student.knowAge ()
Analizuodami matome, kaip turime klasę Asmuo ir šis turi metodą knowAge () Kurdami klasę, konsolės pagalba spausdiname egzemplioriaus amžių Studentas mes jam sakome, kad jis paveldi Asmuo taigi netiesiogiai mūsų naujoji klasė jau turi metodą knowAge () net jei klasėje tai nėra apibrėžta.
Toliau esančiame paveikslėlyje pažiūrėkime, kaip atrodo mūsų naujasis kodas, kai jis yra sukompiliuotas ir išverstas „JavaScript“ grynas:

Tada galime pamatyti, kad mūsų kodas „JavaScript“ yra gana sudėtingas paveldėjimo apibrėžimas, tačiau naudojant CoffeeScript jo optimizavimas yra labai didelis. Jei matome naudingumą, įsivaizduokime labai sudėtingas klases kaip programų komponentus, kurie gali suteikti mums daugybę funkcijų naujose klasėse, nerašydami daugiau nei konkretus kodas, kurio mums tikrai reikia.
Tuo baigėme šią pamoką, matydami klasių pasaulį CoffeeScript Tai nėra taip sudėtinga, kaip atrodė iš pirmo žvilgsnio, viskas slypi žinant objektinio programavimo pagrindus ir filosofiją. Galime užtikrinti, kad naudojimasis CoffeeScript kaip kalba, sudėtinga naudoti klases „JavaScript“ žymiai sumažėja, nes jos sintaksė yra daug arčiau tokių kalbų Python arba Rubinas jie daro jį daug elegantiškesnį ir mažiau painiavą skaitant sukurtą kodą.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką
wave wave wave wave wave