In aceasta lectie puteti invata cum se pot accesa mai multe metode inlantuite in JavaScript.
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 metodele (functiile) sa fie definite folosind cuvantul special this (ca sa poata fi accesate in exterior), iar metoda precedenta (aici metoda_1() ) sa returneze instanta de obiect.
var NumeClasa = function() { var thisob = this; // retine instanta de obiect this.metoda_1 = function(){ // un cod JavaScript return thisob; // returneaza instanta de obiect } this.metoda_2 = function(){ // instructiuni JavaScript } }- Iata un exemplu, un obiect JavaScript prin care se pot calcula aria si perimetrul dreptunghiului (vedeti comentariile din cod si testati-l).
<script> var Rectangle = function() { var thisob = this; // retine instanta de obiect var a = 0; var b = 0; // seteaza valorile pt. a si b this.setAB = function(a1, b1){ a = a1; b = b1; return thisob; // returneaza instanta de obiect } // returneaza aria this.area = function(){ return a * b; } // returneaza perimetru this.perimeter = function(){ return 2 * (a + 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 alert('Aria = '+ area +'\nPerimetru = '+ perimeter); </script>
<script> var setTag = function() { var thisob = this; // retine instanta de obiect var id = ''; // atributul id var cls = ''; // atributul class // seteaza id-ul this.setId = function(id1){ id = ' id="'+ id1 +'"'; return thisob; // returneaza instanta de obiect } // seteaza atributul class this.setClass = function(cls1){ cls = ' class="'+ cls1 +'"'; return thisob; // returneaza instanta de obiect } // returneaza tag-ul HTML si continutul this.getTagCnt = function(tag, cnt){ return '<'+ tag + id + 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 alert(getTag); // <div id="some_id" class="a_class">https://marplo.net</div> </script>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);
<table><tr> <th>Title 1</th> <th>Title 2</th> </tr></table>
.some_class { line-height: 150%; }
document.getElementById("id_button").onclick = function(){ window.open("http://coursesweb.net/"); }
$ar_dir = scandir("dir_name"); var_export($ar_dir);
He will sleep there. - El va dormi acolo.
Él dormirá allí. - El va dormi acolo.