Blog webdeveloperski Patryk yarpo Jar

Rozszerzanie obiektu

Autor wiadomości Styczeń 19, 2011

Każdy obiekt w JS [niezależnie od tego w jaki sposób stworzony] może być rozszerzany. W tym artykule pokażę, jak rozszerzać istniejący obiekt JavaScript.

Stwórzmy sobie obiekt [String]:

var txt = new String('To jest mój napis');

Obiekt ten posiada kilka metod (funkcji), choćby:

alert(txt.toLowerCase()); // małymi literami

Dodajmy do niego dodatkową metodę:

txt.letterSpacing = function()
{
    var n = this.length;
    var str_result = '';
    for ( var i = 0; i < n; i++)
    {
        str_result += this.charAt(i) + ' ';
    }
    return str_result;
}

Oraz jej wywołanie:

alert(txt.letterSpacing());

Zauważ, że jeśli zaraz za tym wyświetlisz ponownie

alert(txt);

Nadal litery są razem. Dzieje się tak dlatego, że nie zmienialiśmy `this', a jedynie przypisywaliśmy wszystko do `str_result' a potem to zwróciliśmy.

Wartym zauważenia jest też to, że jeśli dodasz teraz nowy obiekt String, to nie posiada on tej metody:

var nowy_txt = new String('Poszła baba na targ');
alert(nowy_txt.letterSpacing());

Taki kod wywoła błąd:

Błąd: nowy_txt.letterSpacing is not a function

Dlaczego? Dodaliśmy tę metodę dokładnie do tego jednego obiektu, nie do wszystkich obiektów String. To tak jakbyśmy nauczyli czegoś jednego człowieka. Nie możemy później wymagać, aby każdy to potrafił.

Jest jednak i na to sposób, choć o tym w innym artykule.

Warto przeczytać

Komentarze (0) Trackbacks (0)

Brak komentarzy.


Leave a comment

 

Brak trackbacków.