ECMAScript-objekti-orientoitu teknologia

Orientoiva objekti

Objekti

ECMA-262 määrittelee objektin (object)

Vaikka ECMAScript määrittelee objektin tällä tavalla, se on yleisempi määrittely on nimien (ihmiset, paikat tai asiat) esittämisen perusteella.

Luokka

Jokainen objekti on määritelty luokalla, ja luokan voidaan pitää objektin reseptinä. Luokan on määriteltävä objektin rajapinta (interface) (kehittäjän kautta käytettävissä olevat ominaisuudet ja metodit) sekä objektin sisäinen toiminta (tekee ominaisuuksista ja menetelmistä toiminnallisia). Kääntäjät ja tulkitsijat rakentavat objekteja luokan määrittelyn mukaan.

Esimerkki

Ohjelma käyttää luokkaa luodakseen objekteja, ja luokasta luodut objektit kutsutaan luokan esimerkiksi (instance). Ainoa rajoite luokasta luodun objektin määrälle on suorittavan koneen fyysinen muisti. Jokainen esimerkki toimii samalla tavalla, mutta jokaisella esimerkillä on erillinen tietorakenne. Luokasta luodun objektin esimerkin luominen prosessi kutsutaan instanssointiksi (instantiation).

Edellisissä luvuissa olemme maininneet, että ECMAScript ei ole virallisesti luokkia. Sen sijaan ECMA-262 määrittelee objektin objektin reseptiksi. Tämä on ECMAScriptin loginen kompromissi, koska objektin määrittely on itse asiassa objekti. Vaikka luokat eivät todella ole olemassa, me kutsumme objektin määrittelyä luokaksi, koska useimmat kehittäjät ovat tuttuja tästä termistä, ja toiminnallisesti ne ovat ekvivalentteja.

Objektiornoutuva kielen vaatimukset

Objektiornoutuva kieli tarvitsee tarjota kehittäjille neljä peruskykyä:

  1. Sulkeminen - Kyky tallentaa liittyviä tietoja (ole Massa tai menetelmä) objektiin
  2. Kokoonpano - Kyky tallentaa yksi objekti toisen objektin sisälle
  3. Perintä - Kyky saada luokan (tai useiden luokkien) ominaisuudet ja metodit
  4. Monimuotoisuus - Kyky kirjoittaa toimintoja tai menetelmiä, jotka voivat suoritua useilla tavoilla

ECMAScript tukee näitä vaatimuksia, joten sitä voidaan pitää objektiornoutuvana.

Objektin koostumus

ECMAScriptissä objektit koostuvat ominaisuuksista (attribute), jotka voivat olla alkuperäisiä arvoja tai viittauksia. Jos ominaisuus sisältää funktion, sitä pidetään objektin metodina (method), muuten ominaisuus pidetään objektin ominaisuutena (property).