: Home / JavaScript / artykuły / Dopisywanie własnych metod do obiektów
Dopisywanie własnych metod do obiektów
Ocena użytkowników: / 0
SłabyŚwietny 
Wpisany przez Patryk yarpo Jar   
wtorek, 22 września 2009 18:04

W poradzie dotyczącej dodawania nowych metod do istniejących obiektów wspomniałęm, że da się dodawać metody do wszystkich obiektów - nie tylko do tego jednego wybranego.

Przykładowy kod:

01.String.prototype.letterSpacing = function() {
02. 
03. 
04.    var n = this.length;
05. 
06.    var str_result = '';
07. 
08. 
09.    for(var i=0; i<n; i++) {
10. 
11.        str_result += this.charAt(i) + ' ';
12. 
13.    }
14. 
15. 
16.return str_result;
17. 
18.}

W powyższym kodzie dodaliśmy nową metodą do wszystkich obiektów tworzonych według prototypu obiektu String. Dzięki temu, każdy obiekt String będzie posiadał tę metodę:

1.var oNapis1 = new String("Mój pierwszy napis");
2. 
3.var oNapis2 = new String("Kolejny tekst");
4.alert(oNapis1.letterSpacing());
5. 
6.alert(oNapis2.letterSpacing());

Gdyby teraz do jednemu z tyhc obiektów nadpisać metodę letterSpacing:

1.oNapis1.letterSpacing = function() {
2. 
3.return this.toLowerCase(); // zwraca wszystko małymi literami
4. 
5.}
6.alert(oNapis1.letterSpacing());
7. 
8.alert(oNapis2.letterSpacing());

Pierwszy alert da w wyniku to, co zakodowaliśmy w definicji letterSpacing przypisanej do prototypu obiektu String. Drugi alert wyświetli wynik działania metody nadpisanej (czyli toLowerCase()).

Zrozumienie tego początkowo nie jest łatwe, ale można się w końcu przyzwyczaić.

 

Dodaj komentarz

Zostało: 1000 symboli


Kod antysapmowy
Odśwież