Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. JavaScript
Code

Paprastas JavaScript paveldimumas: ką reikia žinoti

by
Difficulty:IntermediateLength:ShortLanguages:
Sponsored Content

This sponsored post features a product relevant to our readers while meeting our editorial guidelines for being objective and educational.

Lithuanian (Lietuvos) translation by Mantas Kaveckas (you can also view the original English article)

Daugelis mano pažįstamų − C# arba C++ programuotojai. Savo darbe jie pratę naudoti paveldimumą (ang. „inheritance“), tačiau kai tai liečia JavaScript, vienas pirmųjų jiems kylančių klausimų: „kaip apskritai veikia paveldimumas JavaScript?“

Iš tiesų objektinės programavimo kalbos formavimui, JavaScript naudojamas kiek kitoks būdas nei C# ar C++. Tai prototipais pagrįsta (ang. „prototype-based“) programavimo kalba. Prototipų samprata suponuoja tai, kad programos elgsena gali būti perpanaudojama klonuojant jau esamus objektus, kurie egzistuoja kaip prototipai. Kiekvienas JavaScript objektas yra tiesiogiai priklausomas nuo jo prototipo, kuris apibrėžia funkcijų ir savybių rinkinį, kurį gali panaudoti minėtas objektas. Jokių klasių — tiesiog objektai. Beje, kiekvienas objektas savaime gali būti naudojamas kaip prototipas.

Toks veikimo principas yra be galo lankstus, todėl suteikia mums galimybę sumodeliuoti OOP primenančius konceptus, pavyzdžiui paveldimumą.

Paveldimumo implementavimas

Pažiūrėkime ką galime sukurti pasiremdami šia hierarchija, naudojantis JavaScript:

Inheritance in JavaScript

Visų pirma, deklaruojame kintamąjį ClassA. Kadangi konkrečios klasės nėra, tam tikrą elgseną galime aprašyti tiesiog funkcija:

Ši „klasė“ gali būti inicijuojama naudojantis new raktažodžiu:

Ir kviečiama iš objekto:

Gana paprasta, ar ne?

Galutinis aštuonių eilučių pavyzdys:

Pabandykime parašyti įrankį leidžantį implementuoti klasių „paveldimumą“. Šis įrankis turėtų atlikti vienintelį darbą: nuklonuoti objekto prototipą.

Ir čia prasideda visa magija! Nuklonavę prototipą, į naują klasę kartu transportuojame visus jo narius, t.y. funkcijas ir savybes.

Taigi norėdami pridėti dar vieną klasę, kuri paveldės iš tėvinės klasės, turime naudoti šį kodą:

Kadangi ClassB paveldėjo print funkciją iį ClassA, šis kodas puikiai veikia:

Ir išveda tokį rezultatą:

Galime net perrašyti ClassB klasės print funkciją:

Šiuo atveju programa grąžina tokį rezultatą:

Svarbiausia iškviesti ClassA.prototype, kuris suteikia print metodą. call funkcijos dėka galime iškviesti bazinę funkciją iš esamo objekto (this).

Analogiškai aprašome ClassC:

Rezultatas:

Daugiau JavaScript praktikos

Tikriausiai nustebsite, bet daug nemokamos medžiagos apie atviro kodo JavaScript projektus ir susijusią informaciją suteikia Microsoft, kartu siekiame tikslo sukurti daug daugiau su Microsoft Edge. Keletas asmeninių rekomendacijų:

Mūsų komandos mokymosi kursai:

Ir keletas nemokamų įrankių: Visual Studio Community, Azure Trial ir naršyklių suderinanumo testavimo įrankiai Mac, Linux ar Windows operacinėms sistemoms.

Šiek tiek filosofijos...

Apibendrinant, norėčiau dar kartą pabrėžti, kad JavaScript nėra C# ar C++. Ši kalba turi nuosavą filosofiją. Jeigu esate C++ ar C# programuotojas ir norite išnaudoti viską, ką suteikia JavaScript, turiu jums vienintelį patarimą: nebandykite lyginti savo kalbos su JavaScript. Nėra nei geriausios, nei blogiausios kalbos. Tiesiog skirtingos filosofijos.

Šis straipsnis yra dalis Microsoft Web programuotojų technologijų mokymų dalis. Džiaugiamės galėdami jums pristatyti Microsoft Edge ir naują EdgeHTML vaizdo interpretavimo variklį. Gaukite nemokamas virtualias mašinas savo Mac, iOS, Android ar Windows prietaisams http://dev.modern.ie/.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.