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);
}
};
}
