JS: Introducción a la POO
Teoría: toString()
En el prototipo de objetos JavaScript, hay un "método mágico" llamado Object.prototype.toString(). Es mágico porque se llama automáticamente en los lugares donde se utiliza el objeto como una cadena. Esto ocurre regularmente durante el desarrollo, todos hemos visto mensajes como este: '[object Object]'.
¿Para qué se utiliza? En el desarrollo web, los objetos a menudo se convierten en cadenas, por ejemplo, al mostrarlos al usuario o al transmitir datos entre diferentes aplicaciones. Imagina una lista de algo, como una lista de cursos en Códica. La salida del nombre de cada curso se puede hacer así:
Pero si definimos toString(), el código se simplifica:
La ventaja aquí no solo radica en una escritura más corta, sino también en que generalmente hay muchas formas diferentes de salida. Incluso cuando estamos depurando, necesitamos la salida en el registro. En todas estas situaciones, tener toString() facilita el trabajo, ya que no es necesario convertir explícitamente los objetos en cadenas. Además, en el futuro, solo es necesario cambiar un lugar para que la salida cambie en todos los lugares.
El toString() en sí no es algo especial, es simplemente un método normal en el prototipo. Y dado que es así, podemos sobrescribirlo:
Lo mismo se puede hacer en el prototipo de cualquier constructor:
Pero, ¿qué hacer si queremos mostrar el objeto "tal cual"? Esto puede ser necesario para analizar la estructura interna. Si este objeto no tiene toString() definido, obtendremos una salida muy poco informativa [object Object]. En ese caso, podemos convertir el objeto a JSON: