Gå til innhold

Kommentar fra Innholdsansvarlig på Diskusjon.no: Fullt navn er ingen garanti for en saklig debatt

Foto

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


6 svar i denne tråden

#1 danielhoifodt

danielhoifodt

    Bruker

  • Medlemmer
  • 120 innlegg
  •   16. juli 2018

Skrevet 21. juni 2019 - 22:06

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:)


Dette innlegget har blitt redigert av danielhoifodt: 22. juni 2019 - 11:32

  • 0

Se min blog på www.itsumo.no


#2 ahw_

ahw_

    Bruker

  • Medlemmer
  • 430 innlegg
  •   12. november 2010

Skrevet 22. juni 2019 - 16:39

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.


Dette innlegget har blitt redigert av ahw_: 22. juni 2019 - 16:49

  • 0

#3 danielhoifodt

danielhoifodt

    Bruker

  • Medlemmer
  • 120 innlegg
  •   16. juli 2018

Skrevet 22. juni 2019 - 16:49

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.


  • 0

Se min blog på www.itsumo.no


#4 ahw_

ahw_

    Bruker

  • Medlemmer
  • 430 innlegg
  •   12. november 2010

Skrevet 22. juni 2019 - 17:14

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.


Dette innlegget har blitt redigert av ahw_: 22. juni 2019 - 17:16

  • 0

#5 danielhoifodt

danielhoifodt

    Bruker

  • Medlemmer
  • 120 innlegg
  •   16. juli 2018

Skrevet 22. juni 2019 - 17:24

Ja, man må jo passe på en del ting. Har nok ikke like mye erfaring som deg enda. Men vet typescript er litt bedre på dette. Det er neste språk jeg skal lære meg.


  • 0

Se min blog på www.itsumo.no


#6 OneFatCat

OneFatCat

    Bruker

  • Medlemmer
  • 195 innlegg
  •   17. juli 2013

Skrevet 22. juni 2019 - 18:55

https://github.com/g...ou-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


  • 0

#7 danielhoifodt

danielhoifodt

    Bruker

  • Medlemmer
  • 120 innlegg
  •   16. juli 2018

Skrevet 27. juni 2019 - 17:12

https://github.com/g...ou-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


Dette innlegget har blitt redigert av danielhoifodt: 27. juni 2019 - 17:13

  • 0

Se min blog på www.itsumo.no



0 bruker(e) leser denne tråden

0 medlemmer, 0 gjester, 0 skjulte brukere