Helsingin yliopisto / tietojenkäsittelytieteen laitos / Ohjelmointitekniikka (JavaScript) / © Arto Wikla 2013

Ohjelmointitekniikka (JavaScript): kurssikoe 10.12.2013/AW

Kirjoita jokaiseen vastauspaperiisi kurssin nimi ja kokeen päivämäärä sekä nimesi, opiskelijanumerosi ja myös allekirjoituksesi.
Vastaa kysymyksiin 1, 2 ja 3 eri papereille. Tämä helpottaa ja nopeuttaa tarkastusta. Vastauspaperit myös kerätään tehtävittäin, ei aakkosittain.
  1. Selitä lyhyesti ja täsmällisesti (12 pistettä):

    1. olioliteraali ja funktioliteraali
    2. funktion parametrien välitys JavaScript-kielessä
    3. sulkeuma, vapaa ja sidottu muuttuja
    4. konstruktorifunktio ja sen prototype-kenttä
    5. olion prototyyppiketju
    6. iteraattorin idea

    1. Oletko jo vastannut kurssikyselyyn tai lupaatko varmasti vastata kurssikyselyyn pikimmiten? Kurssipalautelomake löytyy laitoksen opiskelusivun laatikosta "Linkkejä" linkistä "Kurssipalaute". Tämäkin kohta arvostellaan ihan oikeasti! Oikeita vastauksia ovat vain myönteiset: "Olen jo vastannut", "Lupaan varmasti viimeistään huomenna vastata", jne. Rehellisyyttä toivotaan! Rehellisyysprosentteja julkistetaan kurssin pääsivulla. (2 pistettä)

    2. Piirrä syntyneet oliot ja niiden väliset linkitykset seuraavan ohjelman suorituksen aikana numeroiduissa kohdissa (12 pistettä):
      function Employee () {
        this.name = "NN";
        this.dept = 0;
      }
      
      function WorkerBee () {
        this.report = "-";
      }
      
      ///// kohta 1 /////
      
      WorkerBee.prototype = new Employee();
      
      ///// kohta 2 /////
      
      var mark = new WorkerBee()
      mark.name = "Mark"
      mark.dept = 12
      
      ///// kohta 3 /////
      
      function Engineer () {
         this.dept = "engineering";
         this.machine = "comp";
      }
      Engineer.prototype = new WorkerBee();
      
      var jane = new Engineer()
      jane.report = "spec"
      
      ///// kohta 4 /////
      

    1. Millainen on anonyymin sulkeuman avulla ohjelmoitava modulirakenne (Module Pattern)? (6 pistettä)
    2. Ohjelmoi tietorakenne pino modulina, joka tarjoaa palvelut push ja pop. Pinon toteutus talukkona piilotetaan modulin sisään. Operaatio push painaa arvon pinoon, pop poistaa pinon päällimmäisen alkion ja palauttaa sen arvonaan. (6 pistettä)