In JavaScript, functiile pot fi utilizate si pentru a crea un fel de "clase", care pot fi baza unui Obiect (definit cu "new").
O astfel de clasa in JavaScript se creaza folosind cuvantul: function , cu aceasta sintaxa:
numeClasa = function(){ // codul clasei numeClasa }
numeClasa = function(){ var variabilaPrivata = 'valoare_privata'; var functiePrivata = function(/* parametrii */) { // cod JS } this.variabilaPublica = 'valoare_publica'; this.functiePublica = function(/* parametrii */) { // cod ... } }Apoi, codul care creaza un obiect ce foloseste aceasta clasa poate fi asa:
myObject = new numeClasa();
Dupa ce "clasa" e creata si e setat un obiect cu ea, se pot accesa /utiliza functiile si proprietatile (variable) definite in clasa, utilizand numele obiectului.
Sintaxa:myObject = new numeClasa(); // seteaza valoare la o proprietate publica myObject.variabilaPublica = 'valoare'; // apeleaza o functie publica din clasa var method = myObject.functiePublica(/* parametrii */);
// se creaza clasa getSum = function() { var nr1 = 0; // privat this.nr2 = 0; // public // functie privata, ce va seta valoarea lui nr1 var setNr1 = function(nr) { nr1 = nr; } // functie publica // returneaza suma lui nr1 si nr2 (utilizand "this." deoarece a fost definit cu acest cuvant) this.sum = function(nr) { setNr1(nr); // apeleaza functia privata setNr1() care seteaza valoarea lui nr1 return nr1 + this.nr2; } } // seteaza un obiect cu clasa getSum var obSum = new getSum(); // acceseaza proprietatea publica document.write('<p>'+ obSum.nr2 +'</p>'); // 0 // seteaza o alta valoare pt nr2, si preia suma obSum.nr2 = 6; var sum64 = obSum.sum(4); document.write('<p>'+ sum64 +'</p>'); // 10 // test pt. a vedea daca nr1 (privat) poate fi accesat document.write('<p>'+ obSum.nr1 +'</p>'); // undefined
numeClasa = function(parametru) { // codul clasei numeClasa } myObject = new numeClasa('valoare');Iata un alt exemplu, cu o clasa care are un parametru.
// creaza clasa getSum cu un parametru getSum = function(nr) { var nr1 = 0; this.nr2 = 0; // seteaza valoarea proprietatii nr1 var setNr1 = function(nr) { nr1 = nr; } // returneaza suma lui nr1 (privat) si nr2 (folosind "this." fiindca a fost definit cu acest cuvant) this.sum = function() { return nr1 + this.nr2; } setNr1(nr); // apeleaza functia setNr1() cand se creaza obiectul cu aceasta clasa } // seteaza un obiect cu clasa getSum var obSum = new getSum(3); document.write('<p>'+ obSum.nr2 +'</p>'); // 0 // seteaza o alta valoare pt nr2, si preia suma obSum.nr2 = 5; var sum35 = obSum.sum(); document.write('<p>'+ sum35 +'</p>'); // 8
<input type="text" value="valoare-fixa" readonly="readonly" name="a_name" />
.class { border:2px solid blue; border-radius:1.2em; }
var ques = window.confirm("Rezultatul lui 0+0 este 0?"); if (ques) alert("Corect"); else alert("Incorect");
$min_nr = min(12, 8, 25, 13); echo $min_nr; // 8
Its ears are big. - Urechile lui sunt mari.
Los niños son deportistas. - Copii sunt sportivi.