Curs Javascript


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
}

O clasa contine variabile (denumite "proprietati") si functii (denumite si metode) care pot fi publice sau private.
Functiile si variabilele private sunt definite in clasa folosind cuvantul "var". Acestea pot fi accesate doar in codul clasei.
Variabilele si functiile publice se creaza folosind cuvantul: "this". Ele pot fi accesate in interiorul, si in exteriorul clasei.
Sintaxa completa de creare a unei clase din functie in JavaScript:
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();

Accesare proprietati si functii ale clasei

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 */);

- Variabilele si functiile publice create in clasa (cu "this") pot fi accesate in interiorul clasei tot prin cuvantul "this" (asa cum au fost definite).
Iata un exemplu concret (vedeti comentariile din cod).
// 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
• La definirea clasei se pot adauga si parametrii, astfel, cand se creaza un obiect cu acea clasa trebuie adaugata si valoare pentru parametru.
Sintaxa:
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

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag defineste zona de click intr-o harta creata dintr-o imagine?
<map> <img> <area>
<img src="image.jpg" usemap="#map1">
<map name="map1">
  <area shape="rect" coords="9, 120, 56, 149" href="#">
  <area shape="rect" coords="100, 200, 156, 249" href="#">
</map>
Ce proprietate CSS indica ce sa se intample cand continutul unui element depaseste dimensiunile lui?
display overflow position
#id {
  overflow: auto;
}
Clic pe evenimentul care este declansat cand mouse-ul e deasupra unui obiect.
onclick onmouseover onmouseout
document.getElementById("id").onmouseover = function(){
  document.write("Sa ai Viata Buna");
}
Indicati variabila PHP ce contine datele adaugate in adresa URL, dupa caracterul "?".
$_SESSION $_GET $_POST
if(isset($_GET["id"])) {
  echo $_GET["id"];
}
Clic pe pronumele reflexiv care e potrivit in propozitia: "Marc is the boy ... won the prize".
who which whoever
Marc is the boy who won the prize.
- Marc e baiatul care a castigat premiul.
Clic pe pronumele reflexiv care e potrivit in propozitia: "Voy a ver al pintor de ... les hablé ayer".
que quien cuyo
Voy a ver al pintor de quien les hablé ayer.
- Ma duc sa vad pictorul despre care ti-am vorbit ieri.
Creare si utilizare clase din functii in JavaScript

Last accessed pages

  1. Poezii pentru copii, in engleza (38494)
  2. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (261416)
  3. Gramatica limbii engleze - Prezentare Generala (210485)
  4. Exercitii engleza - English Tests and exercises - Grammar (109920)
  5. Prezentul simplu si continuu - Present Tense Simple and Continuous (145376)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (1060)
  2. Curs HTML gratuit Tutoriale HTML5 (874)
  3. Coduri pt culori (620)
  4. Creare si editare pagini HTML (494)
  5. Conditional IF in Limba Engleza - Fraze Conditionale (464)
Chat
Discuta sau lasa un mesaj pt. ceilalti utilizatori
Full screenInchide