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 classsleutelwoord declareert een nieuwe klasse.
- A classdeclaratie is syntactische suiker over prototypale overerving met extra verbeteringen.
- Was deze tutorial nuttig ?
- YesNo
Leave a Reply