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
).class NumeClasa { constructor(){ //aici se pot defini proprietati } metoda_1(){ // un cod JavaScript return this; // returneaza instanta de obiect } metoda_2(){ // instructiuni JavaScript } }
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);
Se pot apela mai mult de doua metode inlantuite, folosind acelasi principiu: toate metodele accesate precedent trebuie sa returneze instanta de obiect (this
).
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>
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);
<ul> <li>http://coursesweb.net/html/</li> <li>http://www.marplo.net/html/</li> </ul>
.some_class { display: list-item; }
var obj = { "courses": ["php", "javascript", "ajax"] }; var jsonstr = JSON.stringify(obj); alert(jsonstr); // {"courses":["php","javascript","ajax"]}
$strhtml = '<body><div id="dv1">CoursesWeb.net</div></body>'; $dochtml = new DOMDocument(); $dochtml->loadHTML($strhtml); $elm = $dochtml->getElementById("dv1"); echo $elm->nodeValue; // CoursesWeb.net
I`m living here. - Traiesc /Locuiesc aici.
Estoy viviendo aquí. - Traiesc /Locuiesc aici.