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
Ce tag se foloseste pentru a adauga liste in elemente <ul> si <ol>?
<dt> <dd> <li>
<ul>
 <li>http://coursesweb.net/html/</li>
 <li>http://www.marplo.net/html/</li>
</ul>
Care valoare a proprietatii "display" seteaza elementul ca tip bloc si afiseaza un punct in fata?
block list-item inline-block
.some_class {
  display: list-item;
}
Care instructiune JavaScript transforma un obiect in sir JSON.
JSON.parse() JSON.stringify eval()
var obj = {
 "courses": ["php", "javascript", "ajax"]
};
var jsonstr = JSON.stringify(obj);
alert(jsonstr);    // {"courses":["php","javascript","ajax"]}
Indicati clasa PHP folosita pentru a lucra cu elemente HTML si XML in PHP.
stdClass PDO DOMDocument
$strhtml = '<body><div id="dv1">CoursesWeb.net</div></body>';
$dochtml = new DOMDocument();
$dochtml->loadHTML($strhtml);
$elm = $dochtml->getElementById("dv1");
echo $elm->nodeValue;    // CoursesWeb.net
Indicati forma de Prezent Continuu a verbului "to live" (a trai /a locui)
lived living liveing
I`m living here.
- Traiesc /Locuiesc aici.
Care este forma de Gerunziu (sau Participiu Prezent) a verbului "vivir" (a trai /a locui)?
viviĆ³ vivido viviendo
Estoy viviendo aquĆ­.
- Traiesc /Locuiesc aici.
Creare clase in JavaScript cu Metode care pot fi inlantuite

Last accessed pages

  1. Gramatica limbii engleze - Prezentare Generala (44999)
  2. Verbe modale - SHALL, SHOULD, OUGHT TO, WILL, WOULD, USED TO, BE TO, DARE (6904)
  3. Gradele de comparatie: comparative, superlative (8488)
  4. Verbe Dinamice si Statice - Dynamic and Static Verbs (1498)
  5. Verbe modale - Modal verbs - CAN, COULD, MAY, MIGHT, MUST (14905)

Popular pages this month

  1. Gramatica limbii engleze - Prezentare Generala (2302)
  2. Cursuri si Tutoriale: Spaniola, Engleza, HTML, CSS, Php-Mysql, JavaScript, Ajax (817)
  3. Alphabet and Pronunciation - Alfabetul si pronuntia in limba engleza (585)
  4. Prezentul simplu si continuu - Present Tense Simple and Continuous (575)
  5. Gramatica limbii spaniole. Indrumator si prezentare generala (567)