Object-Oriented Technology in ECMAScript
- Vorige pagina Closure (closure)
- Volgende pagina Objecttoepassing
Object-oriented terminology
Object
ECMA-262 definieert objecten (object) als 'een ongesorteerde verzameling van eigenschappen, waarbij elke eigenschap een primitive waarde, een object of een functie opslaat'. Strikt genomen betekent dit dat objecten een array van waarden zonder specifieke volgorde zijn.
Hoewel ECMAScript objecten zo definieert, is zijn meer algemene definitie een representatie van namen van code (mensen, plaatsen of dingen).
Klasse
Elk object wordt gedefinieerd door een klasse, en je kunt een klasse zien als een recept (formule) voor een object. Een klasse moet niet alleen het interface (interface) van het object definiëren (de eigenschappen en methoden die ontwikkelaars kunnen gebruiken), maar ook de interne werking (de code die de eigenschappen en methoden in werking stelt). Compilers en interpreters bouwen objecten op basis van de beschrijving van de klasse.
Instantie
Wanneer een programma objecten maakt met behulp van klassen, wordt het gegenereerde object een instantie (instance) van de klasse genoemd. De enige beperking van het aantal objecten dat een klasse kan genereren, komt van de fysieke geheugen van het apparaat dat de code uitvoert. Elke instantie heeft hetzelfde gedrag, maar verwerkt een set onafhankelijke gegevens. Het proces van het maken van objecten met behulp van klassen wordt instantiatie (instantiëring) genoemd.
In de vorige hoofdstukken hebben we vermeld dat ECMAScript geen formele klassen heeft. In plaats daarvan beschrijft ECMA-262 objecten als objectformules. Dit is een logische compromis in ECMAScript, omdat objectdefinities eigenlijk objecten zelf zijn. Hoewel klassen niet echt bestaan, noemen we objectdefinities nog steeds klassen, omdat de meeste ontwikkelaars dit termijn beter kennen en functioneel gezien equivalent zijn.
Vereisten van objectgeoriënteerde talen
Een objectgeoriënteerde taal moet vier basiscapaciteiten bieden aan ontwikkelaars:
- Encapsulation - De mogelijkheid om relevante informatie (ofwel gegevens of methoden) op te slaan binnen een object
- Aggregatie - De mogelijkheid om een object op te slaan binnen een ander object
- Inheritance - De mogelijkheid om eigenschappen en methoden van een andere klasse (of meerdere klassen) over te nemen
- Polymorfie - De mogelijkheid om functies of methoden te schrijven die op meerdere manieren kunnen worden uitgevoerd
ECMAScript ondersteunt deze vereisten, en kan daarom als objectgeoriënteerd worden beschouwd.
De samenstelling van objecten
In ECMAScript bestaan objecten uit eigenschappen (attribute), die zowel primitive waarden als referentiewaarden kunnen zijn. Als de eigenschap een functie bevat, wordt deze beschouwd als een method (methode) van het object, anders wordt de eigenschap beschouwd als een property (eigenschap) van het object.
- Vorige pagina Closure (closure)
- Volgende pagina Objecttoepassing