Eight Weeks of Prototype: Week 6, Writing JavaScript Classes with Prototype
Creating a String Representation of Your Class
If you want to define a string representation of an instance of your class, you can do so by defining a class method called toString(). This method must return a string.
Effectively what this does is define what value should be returned when your object is converted (cast) to a string. Listing 16 shows an example of how you might choose to implement toString(). Listing 17 shows how the object is displayed when converted to a string.
Listing 16 Declaring the toString() method (Person.js)
var Person = Class.create({ name : null, initialize : function(name) { this.setName(name); }, toString : function() { return this.getName(); }, setName : function(name) { this.name = name; }, getName : function() { return this.name; }, getCountry : function() { return 'Unknown'; } });
Listing 17 Converting an object to a string so it can be displayed (listing-17.html)
<html> <head> <title></title> <script type="text/javascript" src="/js/prototype.js"></script> <script type="text/javascript" src="/js/Person.js"></script> </head> <body> <div id="foo"></div> <script type="text/javascript"> var me = new Person('Quentin Zervaas'); $('foo').update(me); </script> </body> </html>
When you view this listing in your browser, the instance of Person will be converted to a string so it can populate the #foo div. If you are creative you could do some other magic, such as returning HTML code to output a photo of the person. For instance, toString : function() { return '<img src="..." />'; }.



