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()); //dcba
Poniż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);
		}
	};
}