Gå til innhold
🎄🎅❄️God Jul og Godt Nyttår fra alle oss i Diskusjon.no ×

Hva er best av prototypes(ES5) og classes (ES6) i javascript?


Anbefalte innlegg

Hei,

holder på å lære meg OOP i javascript. Syntes dette er skikkelig gøy og elsker å lære om det. Føler det har åpnet nye veier for meg i programmering. 

 

Men hva liker dere best? Å bruke prototypes og funksjoner eller å bruke klasser?

 

Den nye måten er vel klasser... men de er ganske like. Tror man får litt mer funksjonalitet med klasser. Men har ikke utforsket begge så mye enda. Liker begge metoder. Men jeg vil gjerne vite av dere hva dere syntes er best?

 

Om det er noen javascript pro`s her.

 

Ha en fin kveld:)

Endret av danielhoifodt
Lenke til kommentar
Videoannonse
Annonse

JavaScript har ikke egentlig klasser. De tingene du nevner er samme ting med annen syntaks.

 

Den nye syntaksen er finere, men gjør ikke koden mer funksjonsrik. Mitt problem med den nye syntaksen er at det ikke er støtte for "private properties/funksjoner" enda. Dvs. at alle properties/funksjoner er synlig for alle. Hvis du vil unngå å eksponere implementasjonen så må du være litt kreativ.

 

På den gamle måten kan man enkelt utnytte "function scope" for å skjule implementasjonen. Det er en kjent "pattern" som fungerer selv om det også virker noe hacky.

 

Bruker du Babel eller lignende til å transformere moderne syntaks til ES5 så er du mer fri til å bruke eksperimentell syntaks. Skal du kode for nettlesere så er det ikke en dum idé å transformere koden uansett slik at den fungerer i eldre nettlesere.

Endret av ahw_
Lenke til kommentar

JavaScript har ikke egentlig klasser. De tingene du nevner er samme ting med annen syntaks.

 

Den nye syntaksen er finere, men gjør ikke koden mer funksjonsrik. Mitt problem med den nye syntaksen er at det ikke er støtte for "private properties/funksjoner" enda. Dvs. at alle properties/funksjoner er synlig for alle. Hvis du vil unngå å eksponere implementasjonen så må du være litt kreativ.

 

På den gamle måten kan man enkelt utnytte "function scope" for å skjule implementasjonen. Det er en kjent "pattern" som fungerer selv om det også virker noe hacky.

 

Bruker du Babel eller lignende til å transformere moderne syntaks til ES5 så er du mer fri til å bruke eksperimentell syntaks. Skal du kode for nettlesere så er det ikke en dum idé å transformere koden uansett slik at den fungere i eldre nettlesere.

Skjønner, da er det bare å vente på neste verjson. Forhåpenligvis kommer private. Men jeg liker hverfall klasse best sånn det er nå. Man slipper å tenke på prototype.

Lenke til kommentar

Hvis jeg hadde kodet for nettlesere så ville jeg bare brukt Babel, "class", "private" og heller fokusert på å lage ting. Tror du også kan velge å bare transformere eksperimentell syntaks og beholde original ES6-syntaks.

 

Akkurat nå lager jeg en web service med Node.js, og der vil jeg ikke bruke Babel fordi jeg må ha full oversikt over hva koden gjør. Der har jeg nå en mindre vakker blanding av gammel og ny syntaks.

 

Mitt største problem med "enkle" JavaScript er at det krever mye av en å få all kode til å oppføre seg 100% riktig. Det er noe man må streve for mens andre språk har innebygd restriksjoner som sier ifra når man prøver å gjøre dumme ting. Spesielt når kodebasen blir større så blir det mer vanskelig å holde oversikten og passe på at alle variabler/objekter/properties er definert riktig, blir passert rundt riktig og blir sjekket på riktig måte.

Endret av ahw_
Lenke til kommentar

https://github.com/getify/You-Dont-Know-JS

 

Les, øv, kod. Og siden vi er inne på det, dette er et dårlig sted å få gode råd om koding på fordi alt tydeligvis omhandler hvor dårlig å kode selv er i forhold til å bare gjøre det i Wordpress, LUL.

 

Men vi har en fin Discord-server med norske programmerere av alle slag, bl.a noen sykt dyktige JS-folk: https://discord.gg/GcpyEUZ

 

 

Har blitt litt koding i ferien. Har noen eksempler på det jeg har kodet på www.daniel.hoifodt.com/tester.html

Endret av danielhoifodt
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...