Podsumowanie
Zwraca łańcuch znaków reprezentujący dany obiekt.
Składnia
obj.toString()
Opis
Każdy obiekt posiada metodę toString
, która jest wywoływana automatycznie, kiedy obiekt ma zostać przedstawiony jako wartość tekstowa, albo kiedy obiekt jest dołączany do ciągu znakowego. Poniższe przykłady wymagają, by jakisPies
był reprezentowany jako łańcuch znaków:
console.log(jakisPies); console.log("jakisPies to " + jakisPies);
Domyślnie metoda toString
jest dziedziczona przez każdy obiekt wyprowadzony z obiektu Object
. Można przesłonić tę metodę dla własnych obiektów. Jeśli toString
nie zostanie przesłonięta we własnych obiektach użytkownika, zwróci ona [object
typ
]
, gdzie
typ
jest typem obiektu lub nazwą funkcji konstruktora, która utworzyła ten obiekt.
Na przykład:
var o = new Object() o.toString() // zwraca "[object Object]"
Przykłady
Przesłanianie domyślnej metody toString()
Można utworzyć funkcję, która będzie wywoływana zamiast domyślnej metody toString()
. Metoda toString()
nie pobiera żadnych argumentów i powinna zwrócić łańcuch znaków. Utworzona przez użytkownika metoda toString()
może zwracać dowolną wartość, ale najlepiej, by przekazywała użyteczne informacje na temat obiektu.
Poniższy kod definiuje typ obiektowy Pies
i tworzy obiekt jakisPies
typu Pies
:
function Pies(nazwa,rasa,wiek,plec) { this.nazwa=nazwa; this.rasa=rasa; this.wiek=wiek; this.plec=plec; } jakisPies = new Pies("Szarik","owczarek niemiecki","5","samiec");
Jeśli wywołana zostanie metoda toString
tego obiektu, zwrócona zostanie domyślna wartość odziedziczona po Object
:
jakisPies.toString(); // zwraca [object Object]
Poniższy kod tworzy funkcję piesToString
, która to funkcja będzie przesłaniać domyślną metodę toString
. Funkcja ta tworzy łańcuch znaków zawierający każdą własność; budowany łańcuch będzie postaci "własność = wartość;
".
function piesToString() { var ret = "Pies " + this.nazwa + " to: [\n"; for (var prop in this) ret += " " + prop + " = " + this[prop] + ";\n"; return ret + "]"; }
Poniższy kod przypisuje zdefiniowaną powyżej funkcję do metody toString
obiektów typu obiektowego Pies:
Pies.prototype.toString = piesToString;
Dzięki powyższemu kodowi za każdym razem, kiedy jakisPies
używany jest w kontekście łańcucha znaków, interpreter JavaScriptu automatycznie wywołuje funkcję piesToString
, która zwraca poniższy łańcuch:
Pies Szarik to: [ nazwa = Szarik; rasa = owczarek niemiecki; wiek = 5; plec = samiec; ]
Metoda toString
danego obiektu jest zazwyczaj wywoływana przez interpreter JavaScriptu, ale można ją wywołać samodzielnie, jak poniżej:
var piesString = jakisPies.toString();