Tehtävän 1 arvosteluperusteet: (Tommi Tuura) (päivitetty 27.12.) - Jokainen alakohta on kaksi (2) pistettä. Tehtävän maksimpisteet: 12. - Joissain tehtävissä jaettiin puolikkaita pisteitä laskennassa, mutta alakohdittain(!) pyöristys ylöspäin. - Keskeistä on että vaadittu asia on esitetty vastauksessa siten, että tarkistaja näkee opiskelijan tietävän/ymmärtävän asian. "Selitä lyhyesti ja täsmällisesti" a) olioliteraali ja funktioliteraali Olioliteraali on olion esitys lähdekoodissa siten, että olion avain-arvoparit esitellään aaltosulkeiden sisällä pilkulla erotettuna näin: { avain: arvo, toinenavain: toinenarvo }. (+1) Funktioliteraali on nimettömän funktion esitys lähdekoodissa: function(a,b) { /* tehdään asioita */ } Nimetyn funktioliteraalin mahdollisuutta ei vaadittu mainittavan. (+1) b) funktion parametrien välitys JavaScript -kielessä Olioparametrien viiteluonne mainittava/käytävä selväksi (+1) Todellisten parametrien määrän ei tarvitse täsmätä muodollisten parametrien määrän kanssa (+0.5) Myös funktioita voi välittää parametrina (+0.5) c) sulkeuma, vapaa ja sidottu muuttuja Sulkeuma on näkyvyysalue (JavaScriptissä funktio) joka kuljettaa sisällään viitettä määrittelykohtansa näkyvyysalueeseen, riippumatta siitä onko tuota määrittelyaluetta enää muuta kautta saavutettavissa. (+1) TAI Sulkeuman avulla voidaan kapseloida muuttujia antamalla viite funktion sisällä määriteltyyn funktioon, joka pääsee käsittelemään piilossa olevia muuttujia. (+0.5) Vapaa muuttuja Näkvyysalueen/funktion ulkopuolella määritellyt muuttujat, joita funktio käyttää/voi käyttää koska ne näkyvät funktiolle muuttujien näkyvyyssääntöjen kautta. (+0.5) Sidottu muuttuja funktion muodolliset parametrit ja funktion sisällä määritellut muuttujat, jotka näkyvät vain funktion sisällä (+0.5) d) konstruktorifunktio ja sen prototype -kenttä Funktion kutsuminen new -avainsanalla, uuden olion luonti ja sidonta this:iin (+1) prototype on kaikkien funktio-olioiden ominaisuus, joka sijoitetaan luotavan olion prototyyppiolioksi ("myös __proto__ -kenttään" tms. kelpaa) (+1) e) olion prototyyppiketju Etsittäessä arvoa olion kentälle, (ominaisuudelle, propertylle) etsitään ensin oliosta, sen jälkeen olion prototyyppiketjussa järjestyksessä vastaantulevista olioista. Prototyyppiketjusta perityt arvot ovat jaettuja arvoja! (+1) Olio liitetään ketjuun luotaessa ja ketjua voidaan muokata jälkeenpäin dynaamisesti. (+0.5) Prototyyppiketju päättyy Object.prototype:n osoittamaan olioon (+0.5) f) iteraattorin idea Iteraattorin voi luoda läpikaydäkseen olion numeroituvia avain-arvo-pareja (+1) Iteraattorille voi antaa/rakentaa oman etenemislogiikan (+0.5) Iteraattori säilyttää läpikäyntisijainnin (+0.5)