een JavaScript class is een blauwdruk voor het maken van objecten. Een klasse omvat gegevens en functies die de gegevens manipuleren.
In tegenstelling tot andere programmeertalen zoals Java en C++, zijn JavaScript-klassen syntactische suiker over de prototypale overerving. Met andere woorden, ES6 klassen zijn slechts speciale functies.
klassen voorafgaand aan ES6 revisited
voorafgaand aan ES6, JavaScript had geen concepten van klassen., Om een klasse na te bootsen, gebruikten we vaak een constructorfunctie zoals getoond in het volgende voorbeeld:
Output:
hoe het werkt.
maak eerst de Person
aan als een constructorfunctie met een eigenschapsnaam genaamd name
. De functie getName()
is toegewezen aan de functie prototype
zodat deze gedeeld kan worden door alle instanties van het Person
type.
maak dan een nieuwe instantie aan van het Person
type met behulp van de new
operator., Hetjohn
object is dus een instantie vanPerson
enObject
via prototypale overerving.,
De volgende instructies maken gebruik van de instanceof
operator om te controleren of john
een exemplaar van de Person
en Object
type:
Code language: JavaScript (javascript)
ES6 klasse verklaring
ES6 introduceert een nieuwe syntax voor het declareren van een klasse, zoals in dit voorbeeld:
Code language: JavaScript (javascript)
Deze Person
class gedraagt zich als de Person
typ in het vorige voorbeeld. Echter, in plaats van een constructor functie te gebruiken, gebruikt het het class
sleutelwoord.,
in dePerson
klasse, is deconstructor()
waar u de eigenschappen van een instantie kunt initialiseren. JavaScript roept automatisch de constructor()
methode aan wanneer u een object van de klasse instantieert.
het volgende maakt een nieuw Person
object aan, dat automatisch constructor()
van de Person
klasse:
Code language: JavaScript (javascript)
de getName()
wordt een methode van de Person
klasse genoemd., Net als een constructorfunctie kunt u de methoden van een klasse aanroepen met de volgende syntaxis:
Code language: CSS (css)
bijvoorbeeld:
Code language: JavaScript (javascript)
om te controleren of klassen speciale functies zijn, kunt u de typeof
operator gebruiken om het type van de klasse.
Code language: JavaScript (javascript)
Het retourneert function
zoals verwacht.,
De john
object is ook een exemplaar van de Person
en Object
typen:
Code language: JavaScript (javascript)
Class vs. Custom type
Ondanks de overeenkomsten tussen een klasse en een custom type gedefinieerd via een constructor-functie, er zijn enkele belangrijke verschillen.
eerste, klasse declaraties worden niet opgetild zoals functie declaraties.
bijvoorbeeld, als u de volgende code boven de Person
klasse declaratie sectie plaatst, krijgt u een ReferenceError
.,
Code language: JavaScript (javascript)
fout:
Code language: JavaScript (javascript)
ten tweede wordt alle code in een klasse automatisch uitgevoerd in de strikte modus. En je kunt dit gedrag niet veranderen.
Derde, Klasse methoden zijn niet-enumerable. Als je een constructor functie gebruikt, moet je de Object.defineProperty()
methode gebruiken om een eigenschap niet-enumerabel te maken.
vierde, het aanroepen van de klasse constructor zonder de new
operator zal resulteren in een fout zoals getoond in het volgende voorbeeld.,
Code language: JavaScript (javascript)
fout:
Code language: JavaScript (javascript)
samenvatting
- gebruik JavaScript
class
sleutelwoord declareert een nieuwe klasse. - A
class
declaratie is syntactische suiker over prototypale overerving met extra verbeteringen.
- Was deze tutorial nuttig ?
- YesNo
Leave a Reply