En JavaScript-klassen er en oppskrift for å lage objekter. En klasse omslutter data og funksjoner som manipulere dataene.
i Motsetning til andre programmeringsspråk som Java og C++, JavaScript klasser er syntaktisk sukker over prototypal arv. Med andre ord, ES6 klasser er bare spesielle funksjoner.
Klasser før ES6 revisited
Før ES6, JavaScript hadde ingen begreper om klasser., For å etterligne en klasse, vi ofte brukes en konstruktør funksjon som vist i følgende eksempel:
Output:
Hvordan det fungerer.
Først oppretter Person
som en konstruktør funksjon som har en eiendom navn som kalles name
. getName()
funksjon som er tilordnet til prototype
slik at den kan deles av alle tilfeller av Person
type.
Deretter må du opprette en ny instans av Person
type bruk av new
operatør., john
objekt, derfor, er en forekomst av Person
og Object
gjennom prototypal arv.,
følgende uttalelser bruk instanceof
operatør for å sjekke om john
er en forekomst av Person
og Object
skriver:
Code language: JavaScript (javascript)
ES6 klasse erklæring
ES6 innført en ny syntaks for å deklarere en klasse som vist i dette eksemplet:
Code language: JavaScript (javascript)
Denne Person
klassen oppfører seg som Person
skriv i forrige eksempel. Men i stedet for å bruke en konstruktør funksjon, den bruker class
søkeord.,
I Person
klassen constructor()
er der du kan initialisere egenskaper for et eksempel. JavaScript automatisk samtaler constructor()
metoden når du instantiate et objekt av klassen.
følgende skaper en ny Person
objekt, som vil automatisk ringe constructor()
av Person
klasse:
Code language: JavaScript (javascript)
getName()
kalles en metode for Person
klasse., Som en konstruktør-funksjonen, kan du ringe metoder i en klasse med følgende syntaks:
Code language: CSS (css)
For eksempel slik:
Code language: JavaScript (javascript)
for Å bekrefte det faktum at klasser er spesielle funksjoner, du kan bruke typeof
operatør for å sjekke type Person
klasse.
Code language: JavaScript (javascript)
tilbake function
som forventet.,
john
objektet er også en forekomst av Person
og Object
typer:
Code language: JavaScript (javascript)
– Klassen vs. Tilpasset type
til Tross for likhetene mellom en klasse og en tilpasset type som er definert via en konstruktør funksjon, det er noen viktige forskjeller.
Første klasse erklæringer er ikke heist som funksjon erklæringer.
For eksempel, hvis du plasserer den følgende koden ovenfor Person
klasse erklæring delen, vil du få en ReferenceError
.,
Code language: JavaScript (javascript)
Feil:
Code language: JavaScript (javascript)
Andre, all koden inne i en klasse automatisk utfører i streng modus. Og du kan ikke endre denne atferden.
Tredje klasse metoder er ikke opplistet. Hvis du bruker en konstruktør-funksjon, må du bruke Object.defineProperty()
metode for å gjøre en eiendom ikke-opplistet.
Fjerde, ringer klassens konstruktør uten new
operatør vil resultere i en feilmelding som vist i følgende eksempel.,
Code language: JavaScript (javascript)
Feil:
Code language: JavaScript (javascript)
Oppsummering
- Bruke JavaScript
class
søkeord erklærer en ny klasse. - En
class
erklæring er syntaktisk sukker over prototypal arv med ytterligere forbedringer.
- Var denne opplæringen nyttig ?
- YesNo
Leave a Reply