JavaScript tilbyr mange muligheter for å opprette og manipulere objekter. Den tradisjonelle bruken av klasser og prototyper er utbredt, men det finnes også alternative tilnærminger som ofte er mer fleksible og enklere. Denne veiledningen viser deg hvordan du kan lage effektive objekter i JavaScript uten å bruke klasser. Vi vil bruke Douglas Crockfords tilnærming, som er basert på funksjonsbasert oppretting av objekter, og gir et interessant perspektiv på Es6 og de etterfølgende versjonene.
Viktigste funn
- Objekter kan opprettes uten bruk av klasser og this
- Funksjonsbasert oppretting av objekter gjør kode-strukturen mer fleksibel og lesbar
- Ved å bruke destrukturering av objekter blir håndteringen mer effektiv og enklere
Trinn-for-trinn veiledning for å opprette objekter uten klasser
Begynn med å lage en funksjon som returnerer et objekt. Dette kan du gjøre ved å bruke en grunnleggende funksjons-syntaks.

I dette eksemplet definerer vi en funksjon createShape. I denne funksjonen oppretter vi et nytt objekt som har forskjellige egenskaper, som id, x og y. Du kan også legge til flere metoder for å utvide funksjonaliteten til objektet.
Sørg for at du sender parameterne som definerer objektet til funksjonen. Dette lar deg opprette en instans av objektet med spesifikke attributter.
For å gjøre objektet nyttig kan du også definere metoder som er integrert i objektet. For eksempel kan du legge til en print-metode som skriver ut egenskapene til objektet.

Her utvider du createShape-funksjonen med print-metoden. Pass på å implementere metoden korrekt for å sikre at den kan referere til egenskapene til objektet.
Et annet element er implementeringen av en move-metode. Denne metoden kan brukes til å endre x og y koordinatene til objektet. Ikke glem å gi parameterne unike navn for å unngå forvirring.
Du kan også bruke funksjoner for å destrukturere objektene. I stedet for å sende parameterne enkeltvis, kan du sende et objekt og bruke destrukturering for å hente egenskapene.
Denne teknikken gjør koden din ikke bare mer lesbar, men også mer fleksibel. Du kan enkelt legge til nye parametere og delvis fjerne eksisterende, uten å måtte skrive om hele funksjonaliteten.
Når du vurderer å integrere andre funksjoner, kan du definere en annen funksjon createBaseShape som implementerer noen grunnleggende oppførsel og kalles fra det første objektet.
Screenshot_目330
Med den videre tilnærmingen kan du enten få tilgang til printBase eller andre funksjoner og bruke dem uten å måtte bruke this eller lignende.
Som en siste forbedring kan du fryse objektet for å sikre at egenskapene ikke kan endres etter opprettelsen. Dette oppnås ved å bruke metoden Object.freeze().
Denne teknikken viser at det finnes mange måter å opprette og administrere objekter i JavaScript på, uten å måtte bruke klassemønsteret.
Oppsummering – Objekter uten klasser i JavaScript
I denne veiledningen har du lært hvordan du kan opprette objekter i JavaScript effektivt uten klasser. Tilnærmingen for funksjonsbasert oppretting av objekter gir deg mye fleksibilitet og kontroll. Ved hjelp av ulike metoder som destrukturering og Object.freeze har du muligheten til å utvikle robuste og vedlikeholdbare strukturer som vil være til nytte for koden din.
Ofte stilte spørsmål
Hvordan lager jeg et objekt i JavaScript uten klasser?Du kan definere en funksjon som oppretter og returnerer et nytt objekt.
Hva er fordelene med funksjonsbasert oppretting av objekter?Det muliggjør mer fleksibel håndtering av objekter, enkle utvidelser ved bruk av destrukturering, og forhindrer uønskede modifikasjoner ved bruk av Object.freeze.
Kan jeg definere metoder i objektopprettende funksjoner?Ja, du kan opprette metoder direkte i returfunksjonen til objektet.
Er denne tilnærmingen en fullstendig erstatning for det tradisjonelle klassemønstret?Det er en alternativ metode som kan være mer nyttig i mange spesifikke tilfeller, men den gjør ikke krav på å erstatte klasser fullstendig.