Setting a property of a prototype member of a constructor makes the property visible (when reading) from all instances.
This can be done to emulate static members of C++ classes and is often done in Javascript form methods (because methods are indeed just regular data members, differently from C++).
One example where this could be used instead for "data" is keeping all instances of a certain "class" in a container:
function Widget(x0, y0, x1, y1, name) {
this.x0 = x0;
this.y0 = y0;
this.x1 = x1;
this.y1 = y1;
this.name = name;
this.all_instances.push(this);
}
Widget.prototype.all_instances = [];
var w1 = new Widget(10, 20, 30, 40, "First");
var w2 = new Widget(10, 20, 30, 40, "Second");
Note that however when writing to such a "static" property you're creating instead an instance property; push works because it's not writing to .all_instances but modifying its content (the array).