// This example is from the book _JavaScript: The Definitive Guide_. // Written by David Flanagan. Copyright (c) 1996 O'Reilly & Associates. // This example is provided WITHOUT WARRANTY either expressed or implied. // You may study, use, modify, and distribute it for any purpose. // First, define some functions that will be used as methods function Rectangle_area() { return this.width * this.height; } function Rectangle_perimeter() { return 2*this.width + 2*this.height; } function Rectangle_set_size(w,h) { this.width = w; this.height = h; } function Rectangle_enlarge() { this.width *= 2; this.height *= 2; } function Rectangle_shrink() { this.width /= 2; this.height /= 2; } // Then define a constructor method for our Rectangle objects. // The constructor initializes properties, and also assigns methods. function Rectangle(w, h) { // initialize object properties this.width = w; this.height = h; // define methods for the object this.area = Rectangle_area; this.perimeter = Rectangle_perimeter; this.set_size = Rectangle_set_size; this.enlarge = Rectangle_enlarge; this.shrink = Rectangle_shrink; } // Now, when we create a rectangle, we can immediately invoke methods on it: r = new Rectangle(2,2); a = r.area(); r.enlarge(); p = r.perimeter();