Objekti ja objektikonstruktorit JavaScriptissä?
Objektipainotteisen ohjelmoinnin elävässä maailmassa tiedämme jo luokkien ja objektien merkityksen, mutta toisin kuin muissa ohjelmointikielissä, JavaScriptissä ei ole perinteisiä luokkia kuten muissa kielissä. Mutta JavaScriptissä on objekteja ja konstruktoreita, jotka toimivat enimmäkseen samalla tavalla suorittaakseen samantyyppisiä operaatioita.
- Konstruktorit ovat yleisiä JavaScript-funktioita, joita käytetään avainsanalla ”new”. Konstruktoreita on JavaScriptissä kahta tyyppiä eli sisäänrakennettuja konstruktoreita (array ja object) ja mukautettuja konstruktoreita (määrittelevät ominaisuuksia ja metodeja tietyille objekteille).
- Konstruktorit voivat olla hyödyllisiä silloin, kun tarvitsemme tavan luoda objektin ”tyyppiä”, jota voidaan käyttää useaan kertaan ilman, että objektia tarvitsee joka kerta määritellä uudelleen, ja tämä voidaan toteuttaa Object Constructor -funktiolla. Konventio on, että konstruktoreiden nimi kirjoitetaan isolla alkukirjaimella, jotta ne voidaan erottaa tavallisista funktioista.
Tarkastellaan esimerkiksi seuraavaa koodia:
function Automobile(color) { this.color=color;}var vehicle1 = new Automobile ("red");
Funktio ”Automobile()” on objektin konstruktori, ja sen ominaisuudet ja metodit eli ”väri” ilmoitetaan sen sisälle etuliitteellä avainsanalla ”this”. Objektikonstruktorin avulla määritellyistä objekteista tehdään sitten instansseja avainsanalla ”new”.
Kun new Automobile() kutsutaan, JavaScript tekee kaksi asiaa:
- Se luo tuoreen uuden objektin(instanssin) Automobile() ja osoittaa sen muuttujaan.
- Se asettaa objektin konstruktoriominaisuuden eli ”värin” arvoksi Automobile.
Object.create()-metodia
Object.create()-metodia käytetään uuden objektin luomiseen määritellyllä prototyyppiobjektilla ja ominaisuuksilla. Object.create()-metodi palauttaa uuden objektin, jolla on määritetty prototyyppiobjekti ja ominaisuudet.
Sovellukset:
- Object.create()-metodia käytetään periytymisen toteuttamiseen.
Syntaksi:
Object.create(prototype)
Käytettävät parametrit:
- prototyyppi :
Kyseessä on prototyyppiobjekti, josta uusi objekti pitää luoda.
- propertiesObject : Se on valinnainen parametri. Se määrittää lueteltavat ominaisuudet, jotka lisätään vasta luotuun objektiin.
Palautusarvo:
Object.create() palauttaa uuden objektin, jolla on määritetty prototyyppiobjekti ja ominaisuudet.
Alhaalla on annettu esimerkkejä edellä mainitusta funktiosta.
Alhaalla on annettu esimerkkejä:
Esittely: Tässä esimerkissä on kaksi funktiota ”fruits” ja ”apple”.luodaan uusi instanssi omenasta, jonka nimi on ”app” ja sille on määritetty prototyyppi ja ominaisuus ”fruits” eli this.name = ’fruit 1’.
Esittely: Tässä esimerkissä on kaksi funktiota ”fruits” ja ”apple”. luodaan uusi instanssi omenasta, joka on nimetty nimellä ”app” ja sille on määritetty prototyyppi ja ominaisuus ”fruits” eli this.name = ’fruit 1’ ja this .season = ’summer’.
Koodit edellä mainitulle funktiolle ovat alla.
Koodi 1:
OUTPUT :
"fruit 1"
Koodi 2:
OUTPUT :
"fruit 1""summer"
Exceptions :
- Object.create( ) -metodi heittää TypeError-poikkeuksen, jos parametri propertiesObject ei ole null.
- Object.create( ) -metodi heittää TypeError-poikkeuksen, jos parametri propertiesObject on muu kuin primitiivinen objekti.