JavaScript atspindžiai
Kaip parašyti interaktyvią Voratinklio programytę, kuri būtų pakankamai greita? Toks klausimas nedavė ramybės nuo pat HTML aušros. 1995-ais Netscape (pirmoji firma įsigijusi “Java” licenciją) nusprendė, kad reikia supaprastintos kalbos. Brendan Eich sukūrė kalbą, pavadintą “LiveScript”. “Sun” ją pervadino į “JavaScript”, – ir ji įsiliejo į mases su “Navigator 2.0”. Ši kalba dar turi ECMAScript vardą, nes ją standartu pripažino ECMA.
Resursai:
ECMA: www.wcma.ch/-stand/ECMA-262.htm
Netscape: developer.netscape.com/docs/manuals/communicator/jsguide4
Microsoft “JScript” atmainos aprašas: msdn.ms.com/scripting
Nemokama “JavaScript” realizacija: www.mozilla.org/js/
Ypatybių blyksniai
Tai nėra “Java” (kaip programavimo kalba), kurios pagrindas yra klasės. “JavaScript” turi prototipų objektinę sistemą, kurioje nėra griežtos takoskyros tarp klasių ir objektų (kitos šio tipo kalbos yra ThingLab ir Self, žr. http://self.sunlabs.com). JavaScript neturi ir griežtos tipų kontrolės kompiliavimo metu.
JavaScript iliustraciją pradėsime faktorialo paskaičiavimo funkcija.
function factorial (N) {
if ((N > 100) || (N < 0) ) { return -1; }
if (N == 0) { return 1; }
return N * factorial (N-1);
}
Panaudojimas:
Prototipų objektinė sistema
JavaScript objektų sukūrimui yra naudojami konstruktoriai – tai funkcija, kuri priskiria reikšmes this kintamajam. Konstruktorius iškviečiamas naudojant new operatorių. Šiame pavyzdyje pateikiame konstruktorių Automobilio objektui kurti.
// Konstruktorius
function Automobilis (firma, modelis, metai, numeris) {
this.firma=firma;
this.modelis=modelis;
this.metai=metai;
this.numeris=numeris;
return this;
}
Panaudojimas:
Dabar pailiustruosime, kaip šiam objektui sukuriamas “country” metodas, nustatantis, kurioje šalyje automobilis buvo pagamintas.
// Metodas
function country () {
if (this.firma == “Toyota”) { return “Japonija” }
else if (this.firma == “BMW”) { return “Vokietija” }
else if (this.firma == “Ford”) { return “JAV” }
else { return “Nenustatyta” }
}
Priskyrimas ir panaudojimas:
Toliau – prototipo savybė yra naudojama elgsenos perdavimui tarp objektų. Iliustruosime Toyota prototipu.
// Prototipas
function Toyota (modelis, metai, mileage) {
this.modelis=modelis;
this.metai=metai;
this.mileage=mileage;
}
Panaudojimas:
Kodėl JavaScript iškart tapo populiariu, o dauguma to meto eksperimentinių kalbų niekada neišplito toliau laboratorijos sienų? Ogi todėl, kad ji rado savo nišą – kaip Voratinklio klientų ir serverio pusių programavimo priemonė.
Laukiame Jūsų atsiliepimų, komentarų, papildymų šiai temai, naujų klausimų ir pasiūlymų.