Kirjoittaja Aihe: Javascript retardi kysymys, mutta pakko kysyä...  (Luettu 1801 kertaa)

jukkis88

  • Käyttäjä
  • Viestejä: 47
    • Profiili
Olen alkanut tekemään javascriptillä pieniä härpäkkeitä ja olisin kaivannut muutamaan kysymykseen hieman valaisua.
Esimerkki koodi:
Koodia: [Valitse]
function demo(testValue, testType)
{
this.test1 = testValue; // Eikö tämä ole sama asia kuin tekisin näin: demo.test1 = testValue;
this.test2 = testType;  // Miksi on suositeltavaa tehdä näin? Eikö tuota voisi suoraa käyttää seuraavalla tapaa:

// käyttämällä suoraan attribuuttia testValue, eikä test1
summa = testValue; // pitääkö tuo aina kierrättää muuttujan kautta vai?
}

mrl586

  • Käyttäjä
  • Viestejä: 4638
    • Profiili
Vs: Javascript retardi kysymys, mutta pakko kysyä...
« Vastaus #1 : 09.12.12 - klo:03.33 »
Jos JavaScript on samanlaista kuin Java, näistä ohjeista voi olla apua.

Tommi S.

  • Käyttäjä
  • Viestejä: 240
    • Profiili
Vs: Javascript retardi kysymys, mutta pakko kysyä...
« Vastaus #2 : 09.12.12 - klo:20.04 »
Ensimmäiseksi todettakoon että Javascript ei ole samanlaista kuin Java.

Toiseksi: kysymys on melko epäselvä, mutta tässä muutamia huomioita.

"summa = testValue": tässä kohdassa muutat globaalin muuttujan 'summa' arvoa. Haluatko varmasti tehdä näin, vai onko tämä virhe? Paikallisia muuttujia luodaan 'var' avainsanalla.

this avainsana funktion sisällä viittaa objektiin joka "omistaa" funktion, eli esim. se linkki jota klikattaessa tämä funktio suoritetaan.

this.test1 on siis muuttuja jossain HTML-oliossa tms., ja demo.test1 on muuttuja 'demo' funktio-oliossa, ja nämä ovat siis täysin eri asia.

Kun kysyt "miksi on suositeltavaa tehdä näin?", niin esittäisin vastakysymyksenä: missä näin suositellaan, ja minkälaisessa asiayhteydessä?