Rozszerzanie wbudowanych obiektów Javascript
W Javascript możemy rozszerzać wbudowane obiekty takie jak Array, Math itp. o własne metody. Robimy to pisząc np.:
Array.prototype.nazwa_naszej_metody = function() { //tu implementacja nowej metody }Napiszemy metodę reverse odwracającą kolejność znaków w stringu. Dobrą praktyką jest sprawdzenie czy wbudowany obiekt nie posiada już metody o tej nazwie (instrukcja if).
if (!String.prototype.reverse) { String.prototype.reverse = function () { return this.split('').reverse().join(''); }; }Następnie piszemy String.prototype.reverse i implementujemy nową metodę. Kod metody zajmuje tylko jedną linijkę. Słowo this oznacza tu obiekt String, na którym aktualnie pracujemy. Metodą split zamieniamy ciąg znaków na tablicę składającą się z poszczególnych liter. Potem metodą reverse (dla tablic) odwracamy kolejność elementów w tablicy. Na koniec zamieniamy tablicę z powrotem na string funkcją join. Teraz aby zastosować nową metodę wystarczy napisać na przykład:
var a = 'abcd'; alert(a.reverse()); //dcbaPoniżej przedstawiam kod nowej metody foreach dodanej do obiektu Array. Imituje ona znaną z php pętlę foreach do przechodzenia przez elementy tablicy.
if (!Array.prototype.foreach) { Array.prototype.foreach = function (fn) { for (var i = 0; i < this.length; i++) { fn(this[i], i, this); } }; }