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.
• Sintaxa:
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>

• Se pot apela mai mult de doua metode inlantuite, tehnica e aceeasi, metodele sa fie definute folosind cuvantul "this", si toate metodele accesate precedent trebuie sa returneze instanta de obiect.
- Iata un exemplu de inlantuire trei metode. Un obiect JavaScript ce poate crea un tag HTML, cu ID, atribut "class" si continut (studiati codul si testati-l).
<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 = 'http://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">http://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);

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.
Inlantuire mai multe metode de obiect in JavaScript

Last accessed pages

  1. Viitor simplu si continuu - Future Tense Simple and Continuous (673)
  2. Trecutul simplu si continuu - Past Tense Simple and Continuous (1382)
  3. Amigo Pancho 5 Artic Peru (1)
  4. Verbe modale - Modal verbs - CAN, COULD, MAY, MIGHT, MUST (932)
  5. Jocuri de Aventura si Mistere (50)

Popular pages this month

  1. Bubbles3 (3168)
  2. Gramatica limbii engleze - Prezentare Generala (2455)
  3. Prezentul simplu si continuu - Present Tense Simple and Continuous (2213)
  4. Butterfly Kyodai (2011)
  5. Zuma Deluxe (1950)