“Een
object is een geëtiketteerde doos met een handleiding en losse onderdelen, die
gekloond kan worden.”
- Sam Rain
- Sam Rain
Programmeren gaat veel eenvoudiger als je dat
doet in objecten; dit Object Georiënteerd Programmeren is in veel talen een
aardige hap om te verteren, maar niet in JavaScript. Sterker nog, het is
kinderlijk eenvoudig.
Classificeren is gewoon nuttig; mensen,
hobbits en elven zijn allemaal wezens. Als je een wezen telkens moet
beschrijven als tweebenig, magisch karakter met punt oren in plaats van Elf,
dan voel je na een tijdje wel het redundante karakter. Een object is een klasse
van gegevens – een klasse heeft speciale eigenschappen en een bepaald gedrag.
Van een klasse kunnen er oneindig veel varianten zijn – in enge tovenaarstaal
heten deze varianten een ‘instantie’. Omdat programmeren magie is, kan met een
speciaal toverwoord nieuw ‘leven’ worden gecreëerd uit een bestaande spreuk (de
klassedefinitie). Omdat een klasse maken hetzelfde is als een werkbeschrijving
voor JavaScript, kan dat met ‘function’.
function Kangoeroe (naam)
{ this. naam = naam ;
this. Soort = “kangoeroe” ;
}
{ this. naam = naam ;
this. Soort = “kangoeroe” ;
}
De hoofdletter is weer stijl – door objecten
een naam te geven met een hoofdletter, herken je als Hobbit zo dat het gaat om
een klasse dan een normale uitvoeropdracht. Omdat er vele varianten kunnen
zijn, moeten gegevens op te roepen zijn voor de ‘instantie’. Het toverwoord
‘this’ maakt een speciaal hoofdstuk voor de instantie; we kunnen 100 kangoeroe
instanties maken die elk een unieke naam mogen hebben, maar daarvan zal iedere
instantie bij het opvragen van de ‘soort’ de informatie teruggeven als “kangoeroe”.
De punt (.) verbind het toverwoord this met het speciale ‘hoofdstuk’ en zoals
straks duidelijk wordt – de instantie met het ‘hoofdstuk’.
Een ‘object’ – de klasse dus – is niet zoals
een gewone ‘function’; daarom is er een toverwoord nodig, ‘new’ die het object
omtovert naar de vorm. Dit toverwoord ‘new’ heet met een moeilijk tovenaarsbegrip
de ‘constructor’. Ook zul je een verwijzing nodig hebben naar de nieuwe
instantie – anders vind je deze niet meer terug, zoals een naald in de Stille
Oceaan.
var a = new Kangoeroe (“japie”) ;
var b = new Kangoeroe (“kees”) ;
var c = new Kangoeroe (“mien”) ;
var b = new Kangoeroe (“kees”) ;
var c = new Kangoeroe (“mien”) ;
De tekst staat tussen dubbele
aanhalingstekens, zodat JavaScript niet opzoek gaat naar hoofdstukken; tekst
heet in de tovenaarsboeken een tekenreeks (String). De titels ‘a’, ‘b’ en ‘c’
hebben nu allen een hoofdstuk met een plaatje van een kangoeroe, maar ieder
heeft zijn eigen naam gekregen in het onderschrift. Willen we de ‘soort’
opvragen, kan dat heel gemakkelijk:
var deSoort = a.soort; /* deSoort heeft nu de
waarde “Kangoeroe” */
var deSoort = b.soort; /* nog steeds “kangoeroe” maar dit had niet gehoeven als b van een andere klasse zou zijn */
var deSoort = b.soort; /* nog steeds “kangoeroe” maar dit had niet gehoeven als b van een andere klasse zou zijn */
Wanneer JavaScript gegevens bewaart die horen
bij een klasse, dan heten deze ‘eigenschappen’ (properties). Eigenschappen
geven objecten hun unieke kenmerken!
Meer lezen over Programmeren? Klik hier voor de inhoudsopgave voor alle
artikelen!
©SamRain
JavaScrit -4
JavaScrit -4
Geen opmerkingen:
Een reactie posten