Curs Javascript

In aceasta lectie puteti invata cum se pot crea clase in JavaScript cu metode care pot fi inlantuite.
Inlantuirea metodelor inseamna accesarea mai multor metode, sau functii ale unui obiect, intr-o singura instructune.

obiect.metoda_1().metoda_2()
Cerinta prin care se pot accesa metode inlantuite este ca metoda precedenta (aici metoda_1()) sa returneze instanta de obiect (this).
• Sintaxa:
class NumeClasa {
 constructor(){
 //aici se pot defini proprietati
 }

 metoda_1(){
 // un cod JavaScript

 return this; // returneaza instanta de obiect
 }

 metoda_2(){
 // instructiuni JavaScript
 }
}

- Iata un exemplu, un o clasa JavaScript prin care se pot calcula aria si perimetrul dreptunghiului (vedeti comentariile din cod si testati-l).
class Rectangle {
 constructor(){
 //proprietati
 this.a =0;
 this.b =0;
 }

 // seteaza valorile pt. a si b
 setAB(a1, b1){
 this.a = a1;
 this.b = b1;

 return this; // returneaza instanta de obiect
 }

 // returneaza aria
 area(){
 return this.a * this.b;
 }

 // returneaza perimetru
 perimeter(){
 return 2 * (this.a + this.b);
 }
}

// creaza o instanta de obiect a clasei
var obR = new Rectangle();

// seteaza valorile laturilor si obtine aria si perimetru
var area = obR.setAB(7, 8).area();
var perimeter = obR.setAB(7, 8).perimeter();

// test
document.write('Aria = '+ area +'<br>Perimetru = '+ perimeter);

Multiple metode inlantuite

Se pot apela mai mult de doua metode inlantuite, folosind acelasi principiu: toate metodele accesate precedent trebuie sa returneze instanta de obiect (this).


- Iata un exemplu de inlantuire trei metode. O clasa JavaScript ce poate crea un tag HTML, cu ID, atribut "class" si continut (studiati codul si testati-l).
class setTag {
 constructor(){
 //proprietati
 this.id = ''; // atributul id
 this.cls = ''; // atributul class
 }

 // seteaza id-ul
 setId(id1){
 this.id = ' id="'+ id1 +'"';

 return this; // returneaza instanta de obiect
 }

 // seteaza atributul class
 setClass(cls1){
 this.cls =' class="'+ cls1 +'"';

 return this; // returneaza instanta de obiect
 }

 // returneaza tag-ul HTML si continutul
 getTagCnt(tag, cnt){
 return '<'+ tag + this.id + this.cls +'>'+ cnt +'</'+ tag+ '>';
 }
}

// creaza o instanta de obiect a clasei
var obTag = new setTag();

// variabile cu tipul tag-ului si continut
var tag = 'div';
var cnt = 'https://marplo.net';

// apeleaza metodele inlantuite pt. setare ID, "class", si obtine un <div> cu aceste atribute si continut
var getTag = obTag.setId('some_id').setClass('a_class').getTagCnt(tag, cnt);

// test
document.write(getTag); //<div id="some_id" class="a_class">https://marplo.net</div>
Instructiunea cu metodele inlantuite din codul de mai sus:
var getTag = obTag.setId('some_id').setClass('a_class').getTagCnt(tag, cnt);
E la fel cu acest cod:
// seteaza pe rand ID-ul, "class", apoi obtine tag-ul cu continutul
obTag.setId('some_id');
obTag.setClass('a_class');
var getTag = obTag.getTagCnt(tag, cnt);

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care atribut specifica adresa unde sunt trimise datele din formular?
method action name
<form action="script.php" method="post"> ... </form>
Ce proprietate CSS desparte cuvinte lungi, adaugand pe rand nou?
word-wrap line-height font-size
#id {
  width: 100px;
  word-wrap: break-word;
}
Ce functie aranjeaza elementele din array in ordine alfabetica, bazat pe valorile lor?
pop() sort() shift()
var tutorials = ["php", "html", "css", "flash"];
tutorials.sort();
alert(tutorials[0]);          // css
Indicati functia care returneaza valoarea ultimului element din array.
current() next() end()
$code =[10=>"Perl", 20=>"PHP", 21=>"Python", 30=>"JavaScript");
$last = end($code);
echo $last;      // JavaScript
Alegeti verbul auxiliar corect care trebuie in propozitia: "Her plane ... just arrived".
have has does
Her plane has just arrived.
- Avionul ei tocmai a sosit.
Indicati forma corecta a verbului SER (a fi) in propozitia: "Vosotros ... muy simpáticos".
son soy sois
Vosotros sois muy simpáticos.
- Sunteti foarte simpatici.
Creare clase in JavaScript cu Metode care pot fi inlantuite

Last accessed pages

  1. Functii - Creare si Utilizare (1555)
  2. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (236382)
  3. Gradele de comparatie: comparative, superlative (42044)
  4. Substantive - Exercitii si teste engleza incepatori (31928)
  5. Prepozitii - Prepositions (26305)

Popular pages this month

  1. Prezentul simplu si continuu - Present Tense Simple and Continuous (553)
  2. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (277)
  3. Exercitii engleza - English Tests and exercises - Grammar (240)
  4. Prezentul simplu - Exercitii si teste incepatori (234)
  5. Curs HTML gratuit Tutoriale HTML5 (187)