ECMAScript Objektorienterad Teknik
- Föregående sida Kapsel (closure)
- Nästa sida Objektanvändning
Objektorienterade termer
Objekt
ECMA-262 definierar objekt (object) som "en icke-sorted samling av egenskaper, där varje egenskap lagrar en grundläggande värde, ett objekt eller en funktion". Strikt taget innebär detta att objekt är en array av värden utan särskild ordning.
Trots att ECMAScript definierar objekt på detta sätt, är dess mer allmänna definition en representation av namn (människor, platser eller saker) baserat på kod.
Klass
Varje objekt definieras av en klass, och klasser kan ses som objektets recept. En klass måste inte bara definiera objektets gränssnitt (interface) (de egenskaper och metoder som utvecklaren kan komma åt), utan också definiera objektets interna arbete (koden som gör egenskaperna och metoderna fungera). Kompilatorer och tolkare bygger objekt baserat på klassbeskrivningen.
Exempel
När ett program använder klasser för att skapa objekt, kallas de skapade objekten klassens exemplar (instance). Det enda begränsningen på antalet objekt som skapas av en klass är den fysiska minneskapaciteten hos den maskin som kör koden. Varje exemplar beter sig på samma sätt, men hanterar ett separat datauppsättning. Processen att skapa objektexemplar från en klass kallas instansiering (instantiation).
I de tidigare kapitlen nämnde vi att ECMAScript inte har formella klasser. Istället definierar ECMA-262 objekt som objektets recept. Detta är en kompromiss i ECMAScripts logik, eftersom objektdefinieringen faktiskt är objektet själv. Även om klasser inte faktiskt existerar, kallar vi objektdefinieringen för klasser, eftersom de flesta utvecklare är mer bekanta med termer och de är funktionsmässigt ekvivalenta.
Krav för objektorienterade språk
Ett objektorienterat språk behöver tillhandahålla fyra grundläggande förmågor för utvecklaren:
- Encapsulation - Förmågan att lagra relaterad information (både data och metoder) inom ett objekt
- Aggregation - Förmågan att lagra en objekt i en annan objekt
- Arv - Förmågan att få tillgång till egenskaper och metoder från en annan klass (eller flera klasser)
- Polymorfism - Förmågan att skriva funktioner eller metoder som kan köras på flera sätt
ECMAScript stöder dessa krav och kan därför betraktas som objektorienterad.
Objektets sammansättning
I ECMAScript består objekt av egenskaper (attribute), som kan vara grundläggande värden eller referensvärden. Om egenskapen innehåller en funktion, betraktas den som ett objektmethod (method), annars som ett objekt egenskap (property).
- Föregående sida Kapsel (closure)
- Nästa sida Objektanvändning