Thanks for your answer.

So this is the only way in Javascript to create members, methods and
inheritance? Or do we use this 'prototype' concept because we defined
a namespace?

On Dec 1, 2:14 am, Rune V. Sjøen <[email protected]> wrote:
> The prototype object is used when you want to add a custom property or
> method to an object and want the changes to be reflected in _all_ the
> instances of it.
>
> example.MyTable.prototype.draw = function(data, options) ...
>
> Without the prototype object the function draw will only apply to that
> particular object.  However the goal is to make the draw method exist in all
> instances of MyTable.
>
> In short, it is the JavaScript way of doing class members, methods and
> inheritance.
>
> --
> Rune V. Sjøen
> You always pass failure on the way to success
>
> On Tue, Dec 1, 2009 at 1:32 AM, codingGirl
> <[email protected]>wrote:
>
> > I am not a Javascript ninja so this might be a lack of knowledge but
> > that about the 'prototype' objects used in
> >http://code.google.com/apis/visualization/documentation/dev/index.html
> > ?
>
> > Every class-method has a prototype in its name. What does it do? Can I
> > omit it?
>
> > // Declare a unique namespace.
> > var example = {};
>
> > // Class constructor. Parameter container is a DOM elementon the
> > client that
> > // that will contain the visualization.
> > example.MyTable = function(container) {
> >  this.containerElement = container;
> > }
>
> > // Main drawing logic.
> > // Parameters:
> > //   data is data to display, type google.visualization.DataTable.
> > //   options is a name/value map of options. Our example takes one
> > option.
> > example.MyTable.prototype.draw = function(data, options) {
>
> >  // Create an HTML table
> >  var showLineNumber = options.showLineNumber; // Boolean
> > configuration option.
>
> >  var html = [];
> >  html.push('<table border="1">');
>
> >  // Header row
> >  html.push('<tr>');
> >  if (showLineNumber) {
> >    html.push('<th>Seq</th>');
> >  }
> >  for (var col = 0; col < data.getNumberOfColumns(); col++) {
> >    html.push('<th>' + this.escapeHtml(data.getColumnLabel(col)) + '</
> > th>');
> >  }
> >  html.push('</tr>');
>
> >  for (var row = 0; row < data.getNumberOfRows(); row++) {
> >    html.push('<tr>');
> >    if (showLineNumber) {
> >      html.push('<td align="right">', (row + 1), '</td>');
> >    }
>
> >    for (var col = 0; col < data.getNumberOfColumns(); col++) {
> >      html.push(data.getColumnType(col) == 'number' ? '<td
> > align="right">' : '<td>');
> >      html.push(this.escapeHtml(data.getFormattedValue(row, col)));
> >      html.push('</td>');
> >    }
> >    html.push('</tr>');
> >  }
> >  html.push('</table>');
>
> >  this.containerElement.innerHTML = html.join('');
> > }
>
> > // Utility function to escape HTML special characters
> > example.MyTable.prototype.escapeHtml = function(text) {
> >  if (text == null)
> >    return '';
> >  return text.replace(/&/g, '&').replace(/</g, '<')
> >      .replace(/>/g, '>').replace(/"/g, '"');
> > }
>
> > --
>
> > You received this message because you are subscribed to the Google Groups
> > "Google Visualization API" group.
> > To post to this group, send email to
> > [email protected].
> > To unsubscribe from this group, send email to
> > [email protected]<google-visualization-api%[email protected]>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/google-visualization-api?hl=en.

--

You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-visualization-api?hl=en.


Reply via email to