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 mokinysTai 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:
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:
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:
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ą:
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:
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:
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ą